package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-18.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum18 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {2,0,5,23,-69,44,-16,63,-85,79,53,91,32,98,94,100,50,98,57,92,29,83,-30,71,-100,59,65,47,-53,35,-31,25,23,18,113,12,48,9,-37,7,-14,7,-55,8,-98,9,-76,9,105,8,53,5,-80,-1,36,-8,-108,-18,-114,-29,-109,-41,-99,-53,92,-64,-44,-74,-94,-81,-119,-85,-40,-86,-85,-83,-12,-77,53,-67,-17,-56,70,-42,104,-28,-112,-14,-95,-1,5,11,54,20,-12,26,33,31,7,33,-2,32,-55,31,-53,29,-33,27,-79,26,-38,26,-93,28,79,32,-78,37,-127,44,37,52,-16,59,22,67,-83,72,-9,75,52,76,-11,72,-16,65,12,55,-33,40,-25,23,-31,4,-42,-16,-50,-36,-26,-55,33,-71,97,-85,59,-95,70,-101,-100,-103,-4,-101,33,-94,78,-85,-48,-74,-67,-61,83,-47,-121,-34,-55,-22,-127,-11,90,-2,66,5,66,10,-92,13,-32,15,-119,17,-26,18,-114,20,-16,22,78,26,-57,30,58,36,125,42,36,49,-99,55,103,61,-20,65,-80,68,73,69,103,67,3,63,34,56,-10,46,35,36,35,24,-119,11,20,-1,75,-13,-45,-24,11,-32,16,-39,89,-44,-96,-47,-84,-48,39,-47,-103,-46,-117,-44,-120,-42,32,-40,10,-39,37,-39,88,-40,-42,-42,-34,-44,-47,-46,53,-47,126,-48,83,-47,-43,-45,118,-40,81,-33,123,-24,-94,-13,-117,0,-109,14,53,29,-60,43,95,57,93,69,59,79,101,86,-101,90,-97,91,-122,89,108,84,-69,76,-21,66,-127,55,25,43,69,30,-99,17,-124,5,116,-6,108,-16,-9,-25,-26,-32,47,-37,-85,-42,37,-45,118,-48,89,-50,-93,-52,84,-53,94,-54,-88,-55,99,-55,-110,-55,114,-54,25,-52,-70,-50,126,-46,72,-41,48,-35,21,-28,-36,-21,77,-12,27,-3,16,6,-13,14,51,23,-72,30,64,37,-76,42,-16,46,-9,49,-46,51,-103,52,121,52,126,51,-17,49,-38,47,-126,45,-42,42,13,40,2,37,-86,33,33,30,58,26,-34,21,-16,16,106,11,58,5,106,-2,4,-9,3,-17,-25,-26,-92,-34,-96,-42,-14,-50,9,-56,17,-62,85,-67,8,-70,103,-72,114,-72,96,-70,7,-66,124,-61,-122,-54,13,-45,-23,-36,-94,-25,-5,-14,-75,-2,109,10,-35,21,-90,32,-119,42,55,51,-97,58,68,64,65,68,102,70,-46,70,120,69,-120,66,34,62,119,56,-46,49,117,42,-97,34,-104,26,-98,18,-30,10,-111,3,-52,-4,115,-10,-21,-16,-10,-21,-108,-25,-93,-29,27,-32,-37,-36,-39,-39,-9,-42,97,-44,11,-46,11,-48,122,-50,126,-51,63,-51,-30,-51,-124,-49,95,-46,66,-42,78,-37,97,-31,103,-24,29,-16,94,-8,-56,0,88,9,99,17,-36,24,-113,31,80,37,12,42,-61,45,112,48,57,50,55,51,-127,51,71,51,-97,50,-93,49,88,48,-77,46,-88,44,-23,41,-101,38,99,34,43,29,-57,22,43,15,98,6,127,-4,-62,-15,89,-26,-22,-38,-42,-49,-114,-59,-88,-68,-117,-75,-80,-80,91,-82,-59,-82,-13,-79,-65,-73,-20,-65,15,-54,-92,-43,33,-30,-44,-18,63,-5,-29,6,23,17,-110,25,65,32,-6,36,-15,39,75,41,101,41,-65,40,119,39,42,38,8,37,118,36,113,36,21,37,49,38,-109,39,-38,40,-63,41,-35,41,-43,40,90,38,70,34,121,28,23,21,29,12,62,2,-70,-9,18,-19,-43,-30,127,-39,-116,-47,83,-53,24,-57,-35,-60,-63,-60,125,-58,-64,-55,42,-50,79,-45,-78,-40,-5,-35,-24,-30,15,-25,127,-22,44,-19,87,-17,54,-15,44,-13,-108,-11,-45,-8,78,-3,7,3,26,10,-111,18,21,28,86,38,-61,48,-57,58,-71,67,-21,74,-55,79,-31,81,-31,80,-92,76,68,69,12,59,113,46,-7,31,-91,16,26,1,54,-14,-90,-28,14,-39,-21,-49,117,-55,-88,-59,-95,-60,-27,-59,14,-55,125,-51,-90,-46,-23,-41,-54,-36,-42,-32,-29,-29,-68,-27,-124,-26,113,-26,-30,-27,70,-27,31,-27,-37,-27,15,-24,-74,-21,23,-15,55,-8,-47,0,-98,10,20,21,-91,31,-81,41,-84,50,-35,57,-18,62,-108,65,-85,65,79,63,-84,58,58,52,87,44,-65,35,-2,26,-105,18,19,11,-72,4,-56,-1,57,-4,-52,-7,-127,-8,-53,-9,62,-9,84,-10,-81,-12,-24,-15,-38,-19,101,-24,-73,-31,32,-38,27,-46,42,-54,-6,-62,51,-67,111,-71,56,-72,-3,-71,-62,-66,-105,-58,54,-47,46,-34,-32,-20,-116,-4,95,12,-122,27,85,41,-30,52,-54,61,-68,67,-102,70,-121,70,-64,67,-44,62,64,56,-81,48,-58,40,28,33,52,26,95,20,-38,15,-103,12,-119,10,47,9,116,8,-60,7,-87,6,-56,4,-66,1,119,-3,-53,-9,-37,-16,21,-23,-50,-32,127,-40,-66,-48,9,-54,-12,-60,-41,-63,6,-63,-100,-62,-117,-58,-112,-52,98,-44,112,-35,63,-25,45,-15,-77,-6,118,3,-49,10,-92,16}; }
	private static byte[] data1(){ return new byte[] {-31,20,-112,23,-6,24,88,25,46,25,-48,24,-52,24,78,25,-89,26,0,29,69,32,88,36,-38,40,100,45,105,49,118,52,9,54,-87,53,11,51,0,46,-115,38,-41,28,68,17,42,4,112,-10,-95,-24,121,-37,-108,-49,-91,-59,3,-66,26,-71,-19,-74,-105,-73,-47,-70,59,-64,94,-57,-79,-49,-95,-40,-90,-31,73,-22,60,-14,20,-7,-55,-2,83,3,-27,6,-92,9,-22,11,-8,13,70,16,-64,18,-61,21,84,25,109,29,-19,33,-115,38,6,43,-5,46,8,50,-28,51,60,52,-17,50,-30,47,32,43,-43,36,72,29,-90,20,-85,11,-111,2,-39,-7,-42,-15,-33,-22,39,-27,-54,-32,-53,-35,-17,-37,64,-37,101,-37,3,-36,-20,-36,-65,-35,97,-34,-91,-34,-112,-34,33,-34,-122,-35,-14,-36,-74,-36,17,-35,90,-34,-55,-32,-113,-28,-17,-23,-109,-16,-114,-8,-101,1,103,11,-105,21,-90,31,41,41,-69,49,-59,56,20,62,87,65,-123,66,-127,65,127,62,-102,57,43,51,111,43,-18,34,-2,25,-9,16,48,8,-16,-1,99,-8,-80,-15,-67,-21,-46,-26,-74,-30,89,-33,-102,-36,97,-38,-113,-40,34,-41,1,-42,57,-43,-36,-44,-12,-44,-103,-43,-26,-42,-26,-40,-69,-37,86,-33,-26,-29,22,-23,-15,-18,72,-11,-10,-5,-63,2,119,9,-27,15,-46,21,63,27,-61,31,113,35,63,38,41,40,65,41,-108,41,62,41,80,40,-18,38,33,37,13,35,-81,32,19,30,56,27,21,24,-117,20,-64,16,-103,12,8,8,14,3,-74,-3,8,-8,23,-14,15,-20,-26,-27,21,-32,-112,-38,-91,-43,101,-47,23,-50,-59,-53,-91,-54,-62,-54,39,-52,-52,-50,-76,-46,-63,-41,-44,-35,-45,-28,124,-20,-80,-12,74,-3,-47,5,52,14,45,22,-110,29,42,36,-48,41,95,46,-47,49,-22,51,-55,52,93,52,-51,50,29,48,127,44,13,40,-4,34,97,29,-116,23,-92,17,-69,11,13,6,-107,0,-126,-5,-56,-10,87,-14,104,-18,-43,-22,-109,-25,-99,-28,-24,-31,115,-33,67,-35,87,-37,-60,-39,-98,-40,-2,-41,-15,-41,-107,-40,-4,-39,49,-36,64,-33,54,-29,-35,-25,47,-19,10,-13,68,-7,-76,-1,23,6,86,12,38,18,-107,23,54,28,34,32,68,35,-88,37,75,39,73,40,-82,40,-110,40,8,40,31,39,-33,37,76,36,82,34,-14,31,6,29,-123,25,50,21,63,16,-127,10,7,4,-37,-4,45,-11,37,-19,16,-27,29,-35,-40,-43,121,-49,76,-54,-90,-58,-83,-60,-112,-60,86,-58,-24,-55,60,-49,-20,-43,-67,-35,70,-26,41,-17,-1,-9,102,0,19,8,-35,14,104,20,-70,24,-39,27,-23,29,4,31,124,31,115,31,57,31,5,31,-29,30,-3,30,88,31,-37,31,120,32,-26,32,11,33,123,32,61,31,0,29,-74,25,70,21,-57,15,82,9,40,2,-125,-6,-81,-14,36,-21,64,-28,49,-34,84,-39,-58,-43,-88,-45,-14,-46,-110,-45,93,-43,23,-40,122,-37,54,-33,20,-29,-53,-26,65,-22,81,-19,37,-16,-120,-14,-52,-12,12,-9,-104,-7,-115,-4,49,0,-112,4,-28,9,-38,15,119,22,114,29,-124,36,67,43,73,49,40,54,-125,57,-1,58,117,58,-67,55,-16,50,35,44,-69,35,1,26,-124,15,-97,4,23,-6,75,-16,-83,-25,-115,-32,35,-37,-120,-41,-81,-43,108,-43,115,-42,-109,-40,81,-37,103,-34,98,-31,23,-28,71,-26,-29,-25,-1,-24,-99,-23,-5,-23,96,-22,18,-21,84,-20,117,-18,-121,-15,-28,-11,41,-5,111,1,111,8,-31,15,101,23,-110,30,1,37,84,42,76,46,-113,48,33,49,-15,47,55,45,23,41,-14,35,24,30,-32,23,-58,17,19,12,0,7,-72,2,75,-1,-89,-4,-81,-6,42,-7,-80,-9,70,-10,117,-12,30,-14,11,-17,65,-21,-61,-26,-49,-31,-110,-36,-118,-41,-8,-46,100,-49,25,-51,122,-52,-60,-51,12,-47,101,-42,-82,-35,-124,-26,-118,-16,81,-5,77,6,-11,16,-58,26,69,35,55,42,31,47,12,50,-13,50,6,50,-123,47,-55,43,55,39,52,34,30,29,77,24,10,20,105,16,-119,13,71,11,-111,9,30,8,-98,6,-3,4,-25,2,38,0,-92,-4,82,-8,75,-13,-71,-19,-42,-25,-15,-31,118,-36,-65,-41,19,-44,-63,-47,-8,-48,-51,-47,69,-44,68,-40,-124,-35,-69,-29,-108,-22,-83,-15,-93,-8,41,-1,-14,4,-45,9,-48,13,-82,16,-87,18,-25,19,-87,20,38,21,-84,21,103,22,-111,23,44,25,54,27,-82,29,78,32,-23,34,35,37,-75,38,70,39,-125,38,91,36,-99,32,81,27,-122,20,126,12,-125,3,-6,-7,65,-16,-8,-26,-126,-34,62,-41,127,-47,-122,-51,102,-53,43,-53,-74,-52,-50,-49,56,-44,-118,-39,-128,-33,-91,-27,-59,-21,127,-15,-67,-10,108,-5,87,-1,-84,2,120,5,-18,7,54,10}; }
	private static byte[] data2(){ return new byte[] {124,12,-29,14,-118,17,-123,20,-78,23,0,27,90,30,122,33,63,36,83,38,-103,39,-55,39,-41,38,-77,36,86,33,-21,28,-118,23,125,17,-7,10,84,4,-76,-3,-104,-9,25,-14,105,-19,-106,-23,-75,-26,-80,-28,115,-29,-44,-30,-74,-30,-16,-30,70,-29,-96,-29,-19,-29,16,-28,41,-28,51,-28,112,-28,-30,-28,-64,-27,63,-25,124,-23,-102,-20,-91,-16,-102,-11,127,-5,0,2,-16,8,41,16,64,23,4,30,16,36,45,41,27,45,-78,47,-50,48,109,48,-96,46,-126,43,63,39,20,34,52,28,-38,21,98,15,-9,8,-49,2,5,-3,-62,-9,7,-13,-26,-18,82,-21,45,-24,-96,-27,116,-29,-80,-31,65,-32,32,-33,95,-34,-18,-35,-15,-35,100,-34,97,-33,-21,-32,17,-29,-40,-27,51,-23,35,-19,-88,-15,118,-10,-115,-5,-66,0,-20,5,-21,10,-96,15,-36,19,-98,23,-52,26,74,29,26,31,74,32,-37,32,-29,32,100,32,126,31,42,30,-119,28,-94,26,115,24,7,22,92,19,109,16,62,13,-57,9,-18,5,-13,1,-76,-3,77,-7,-63,-12,50,-16,-83,-21,91,-25,67,-29,-82,-33,-97,-36,64,-38,-103,-40,-47,-41,-26,-41,-23,-40,-41,-38,-76,-35,99,-31,-57,-27,-38,-22,111,-16,101,-10,-99,-4,-28,2,47,9,42,15,-77,20,-59,25,37,30,-54,33,-99,36,-121,38,-110,39,-79,39,-16,38,84,37,6,35,5,32,-121,28,-108,24,92,20,-29,15,102,11,-8,6,-93,2,125,-2,-106,-6,-30,-10,-123,-13,89,-16,103,-19,-57,-22,101,-24,75,-26,105,-28,-36,-30,-107,-31,-72,-32,68,-32,76,-32,-32,-32,9,-30,-56,-29,50,-26,41,-23,-66,-20,-54,-16,89,-11,26,-6,4,-1,-12,3,-62,8,87,13,-121,17,70,21,-111,24,47,27,68,29,-72,30,-81,31,30,32,32,32,-70,31,-5,30,-39,29,117,28,-77,26,-94,24,35,22,65,19,-38,15,1,12,127,7,-86,2,91,-3,-61,-9,-11,-15,37,-20,127,-26,68,-31,-94,-36,-53,-40,10,-42,105,-44,18,-44,8,-43,61,-41,-84,-38,26,-33,122,-28,94,-22,-95,-16,-12,-10,32,-3,-26,2,28,8,-99,12,93,16,101,19,-91,21,43,23,60,24,-44,24,56,25,112,25,-96,25,-37,25,24,26,84,26,-120,26,-119,26,67,26,-112,25,75,24,91,22,-96,19,44,16,11,12,60,7,-14,1,91,-4,-93,-10,24,-15,-49,-21,57,-25,100,-29,123,-32,-117,-34,-99,-35,-87,-35,-119,-34,53,-32,98,-30,1,-27,-57,-25,-95,-22,105,-19,12,-16,-127,-14,-41,-12,37,-9,110,-7,-49,-5,121,-2,125,1,-18,4,-39,8,47,13,-30,17,-50,22,-79,27,74,32,105,36,-69,39,11,42,29,43,-45,42,3,41,-46,37,68,33,-119,27,-24,20,-96,13,19,6,-107,-2,93,-9,-15,-16,110,-21,-2,-26,-62,-29,-88,-31,-79,-32,-85,-32,110,-31,-73,-30,97,-28,43,-26,-26,-25,118,-23,-63,-22,-45,-21,-85,-20,-127,-19,86,-18,103,-17,-43,-16,-40,-14,114,-11,-52,-8,-48,-4,113,1,-89,6,8,12,117,17,-91,22,94,27,78,31,88,34,64,36,-5,36,-120,36,-29,34,79,32,-32,28,-27,24,-116,20,35,16,-44,11,-61,7,51,4,32,1,-114,-2,104,-4,-107,-6,-17,-8,74,-9,115,-11,104,-13,9,-15,68,-18,43,-21,-44,-25,104,-28,38,-31,61,-34,7,-36,-86,-38,111,-38,112,-37,-49,-35,-126,-31,-127,-26,-109,-20,-98,-13,28,-5,-44,2,100,10,125,17,-61,23,0,29,1,33,-86,35,12,37,22,37,-1,35,-4,33,74,31,35,28,-46,24,127,21,97,18,-119,15,34,13,-3,10,54,9,-124,7,-26,5,29,4,16,2,-115,-1,-91,-4,75,-7,-122,-11,106,-15,50,-19,-3,-24,21,-27,-88,-31,-3,-34,65,-35,-116,-36,-3,-36,-118,-34,39,-31,-71,-28,-5,-24,-24,-19,-10,-14,30,-8,2,-3,-114,1,-122,5,-23,8,-100,11,-47,13,97,15,-109,16,125,17,78,18,41,19,32,20,79,21,-88,22,48,24,-73,25,46,27,84,28,7,29,7,29,61,28,109,26,-117,23,-82,19,-47,14,42,9,-44,2,29,-4,85,-11,-77,-18,-101,-24,51,-29,-37,-34,-79,-37,-60,-39,34,-39,-71,-39,116,-37,26,-34,-114,-31,124,-27,-70,-23,11,-18,61,-14,59,-10,-38,-7,37,-3,9,0,-69,2,23,5,80,7,123,9,-82,11,-7,13,94,16,-33,18,110,21,-27,23,43,26,26,28,-103,29,112,30,-106,30,-26,29,93,28,-15,25,-58,22,-23,18,-114,14,-57,9,-26,4,-3,-1,85,-5,-18,-10,35,-13,-28,-17,79,-19,76,-21,-23,-23,-4,-24,-128,-24,77,-24,79,-24,116,-24,-83,-24,-22,-24,54,-23,-114,-23,18,-22,-55,-22,-23,-21,98,-19,99,-17,-17,-15,28,-11,-34,-8,37,-3,-23,1,-22,6}; }
	private static byte[] data3(){ return new byte[] {49,12,69,17,35,22,-126,26,63,30,45,33,42,35,47,36,29,36,24,35,17,33,64,30,-75,26,-95,22,47,18,-122,13,-66,8,30,4,-77,-1,-114,-5,-56,-9,91,-12,84,-15,-82,-18,93,-20,91,-22,-78,-24,92,-25,76,-26,-116,-27,30,-27,8,-27,87,-27,18,-26,66,-25,-29,-24,1,-21,-111,-19,-111,-16,-20,-13,-101,-9,121,-5,-112,-1,-113,3,121,7,42,11,-105,14,-96,17,59,20,101,22,16,24,61,25,-25,25,29,26,-17,25,85,25,109,24,47,23,-80,21,-32,19,-30,17,-89,15,58,13,-113,10,-67,7,-84,4,121,1,8,-2,-109,-6,15,-9,-109,-13,34,-16,-23,-20,-30,-23,58,-25,-7,-28,51,-29,4,-30,114,-31,-122,-31,66,-30,-80,-29,-67,-27,105,-24,-72,-21,101,-17,-117,-13,-24,-9,-122,-4,47,1,-48,5,81,10,-121,14,126,18,-24,21,-47,24,34,27,-48,28,-36,29,56,30,-14,29,8,29,-116,27,-117,25,27,23,74,20,54,17,-20,13,-121,10,24,7,-104,3,70,0,10,-3,2,-6,28,-9,114,-12,-10,-15,-79,-17,-104,-19,-59,-21,51,-22,-29,-24,-34,-25,41,-25,-48,-26,-37,-26,83,-25,71,-24,-84,-23,-118,-21,-40,-19,-101,-16,-78,-13,36,-9,-60,-6,-91,-2,111,2,51,6,-62,9,25,13,27,16,-73,18,-20,20,-81,22,2,24,-25,24,87,25,112,25,39,25,-112,24,-86,23,127,22,-8,20,57,19,38,17,-59,14,19,12,3,9,-93,5,-15,1,-7,-3,-62,-7,123,-11,62,-15,31,-19,79,-23,-25,-27,26,-29,-8,-32,-87,-33,55,-33,-75,-33,20,-31,80,-29,77,-26,-19,-23,8,-18,120,-14,22,-9,-90,-5,-2,-1,8,4,-85,7,-54,10,112,13,-113,15,74,17,-118,18,118,19,31,20,-99,20,-7,20,67,21,118,21,-100,21,-107,21,110,21,-7,20,61,20,8,19,108,17,65,15,-108,12,91,9,-71,5,-54,1,-96,-3,91,-7,58,-11,72,-15,-58,-19,-63,-22,88,-24,-92,-26,-79,-27,101,-27,-52,-27,-71,-26,42,-24,-24,-23,-6,-21,27,-18,81,-16,124,-14,-96,-12,-79,-10,-61,-8,-45,-6,18,-3,93,-1,-33,1,-98,4,-99,7,-42,10,61,14,-73,17,36,21,102,24,60,27,-118,29,37,31,-29,31,-66,31,-119,30,107,28,61,25,83,21,-72,16,-97,11,73,6,-29,0,-79,-5,-30,-10,-95,-14,-2,-18,49,-20,43,-22,-22,-24,89,-24,93,-24,-40,-24,-93,-23,-95,-22,-78,-21,-57,-20,-57,-19,-72,-18,-104,-17,123,-16,114,-15,-102,-14,19,-12,-33,-11,18,-8,-71,-6,-42,-3,79,1,29,5,19,9,27,13,-18,16,101,20,97,23,-77,25,71,27,5,28,-16,27,6,27,96,25,28,23,90,20,78,17,16,14,-40,10,-69,7,-44,4,37,2,-49,-1,-62,-3,-20,-5,62,-6,-101,-8,-11,-10,52,-11,73,-13,45,-15,-11,-18,-90,-20,92,-22,56,-24,90,-26,-7,-28,47,-28,45,-28,5,-27,-71,-26,101,-23,-31,-20,43,-15,7,-10,83,-5,-51,0,79,6,118,11,34,16,33,20,87,23,-90,25,18,27,-110,27,84,27,83,26,-52,24,-36,22,-81,20,110,18,43,16,14,14,11,12,48,10,118,8,-38,6,54,5,-128,3,-98,1,127,-1,31,-3,102,-6,-126,-9,118,-12,81,-15,74,-18,108,-21,-9,-24,-3,-26,-85,-27,18,-27,67,-27,69,-26,-2,-25,116,-22,110,-19,-37,-16,-119,-12,95,-8,24,-4,-102,-1,-46,2,-92,5,18,8,16,10,-76,11,3,13,41,14,24,15,-9,15,-43,16,-69,17,-83,18,-90,19,-112,20,88,21,-27,21,23,22,-39,21,-3,20,-117,19,85,17,-128,14,-12,10,-46,6,75,2,-128,-3,-93,-8,-37,-13,111,-17,117,-21,48,-24,-98,-27,-9,-29,47,-29,69,-29,43,-28,-62,-27,-17,-25,-115,-22,114,-19,-116,-16,-95,-13,-95,-10,127,-7,40,-4,-96,-2,-25,0,10,3,30,5,25,7,7,9,0,11,-8,12,-8,14,-22,16,-57,18,123,20,-27,21,-6,22,-114,23,-86,23,35,23,13,22,81,20,12,18,50,15,2,12,-126,8,-35,4,46,1,-103,-3,60,-6,43,-9,127,-12,44,-14,91,-16,-10,-18,-15,-19,69,-19,-30,-20,-76,-20,-76,-20,-44,-20,18,-19,102,-19,-33,-19,118,-18,71,-17,83,-16,-80,-15,118,-13,-114,-11,17,-8,-17,-6,45,-2,-79,1,98,5,44,9,-28,12,121,16,-79,19,113,22,-89,24,50,26,17,27,47,27,-103,26,80,25,100,23,-3,20,26,18,-14,14,-117,11,22,8,-103,4,56,1,-20,-3,-26,-6,31,-8,-105,-11,87,-13,88,-15,-99,-17,37,-18,-33,-20,-19,-21,54,-21,-53,-22,-87,-22,-38,-22,94,-21,64,-20,123,-19,34,-17,23,-15,97,-13,-12,-11,-61,-8,-64,-5,-43,-2,-16,1,15,5,-4,7,-75,10,46,13}; }
	private static byte[] data4(){ return new byte[] {84,15,38,17,-104,18,-88,19,94,20,-80,20,-83,20,82,20,-84,19,-62,18,-106,17,46,16,-107,14,-74,12,-71,10,-114,8,60,6,-57,3,48,1,-120,-2,-54,-5,15,-7,72,-10,-84,-13,45,-15,-19,-18,-30,-20,60,-21,-29,-23,5,-23,-108,-24,-93,-24,48,-23,59,-22,-64,-21,-70,-19,29,-16,-38,-14,-27,-11,62,-7,-89,-4,45,0,-89,3,16,7,79,10,74,13,-4,15,88,18,60,20,-81,21,-91,22,28,23,29,23,-98,22,-79,21,91,20,-95,18,-99,16,92,14,-25,11,80,9,-86,6,-10,3,82,1,-93,-2,37,-4,-68,-7,-126,-9,101,-11,123,-13,-66,-15,48,-16,-35,-18,-69,-19,-33,-20,79,-20,3,-20,13,-20,108,-20,37,-19,57,-18,-72,-17,126,-15,-94,-13,3,-10,-87,-8,119,-5,98,-2,87,1,69,4,33,7,-57,9,46,12,77,14,34,16,-103,17,-67,18,-120,19,-4,19,35,20,-16,19,-122,19,-57,18,-42,17,-97,16,46,15,-128,13,-123,11,91,9,-15,6,82,4,121,1,124,-2,86,-5,45,-8,-12,-12,-20,-15,24,-17,-112,-20,119,-22,-45,-24,-53,-25,82,-25,-116,-25,98,-24,-36,-23,-31,-21,99,-18,70,-15,113,-12,-63,-9,30,-5,120,-2,-106,1,123,4,15,7,80,9,61,11,-51,12,27,14,25,15,-16,15,-121,16,-7,16,78,17,-128,17,-104,17,-118,17,72,17,-42,16,21,16,19,15,-79,13,-9,11,-34,9,112,7,-82,4,-90,1,-128,-2,80,-5,45,-8,47,-11,122,-14,29,-16,48,-18,-65,-20,-50,-21,97,-21,121,-21,-4,-21,-31,-20,27,-18,-120,-17,39,-15,-31,-14,-87,-12,107,-10,57,-8,2,-6,-43,-5,-74,-3,-84,-1,-67,1,3,4,84,6,-57,8,76,11,-47,13,74,16,-111,18,-107,20,55,22,85,23,-32,23,-57,23,-9,22,-127,21,88,19,-97,16,101,13,-67,9,-21,5,2,2,49,-2,-111,-6,79,-9,115,-12,27,-14,60,-16,-16,-18,35,-18,-56,-19,-59,-19,19,-18,-111,-18,50,-17,-24,-17,-89,-16,112,-15,58,-14,24,-13,8,-12,35,-11,111,-10,-5,-9,-34,-7,-2,-5,106,-2,18,1,-18,3,-31,6,-40,9,-81,12,72,15,-108,17,96,19,-87,20,91,21,117,21,-7,20,-12,19,113,18,-119,16,90,14,1,12,-109,9,42,7,-39,4,-85,2,-88,0,-47,-2,14,-3,127,-5,-10,-7,-128,-8,-5,-10,112,-11,-42,-13,49,-14,-118,-16,-14,-18,-121,-19,79,-20,115,-21,4,-21,26,-21,-64,-21,17,-19,-2,-18,-120,-15,-113,-12,12,-8,-50,-5,-61,-1,-80,3,125,7,4,11,26,14,-99,16,-104,18,-25,19,-96,20,-62,20,93,20,-111,19,98,18,2,17,116,15,-42,13,62,12,-93,10,33,9,-95,7,29,6,-99,4,17,3,101,1,-101,-1,-94,-3,-120,-5,70,-7,-11,-10,-112,-12,78,-14,49,-16,99,-18,-27,-20,-24,-21,99,-21,117,-21,24,-20,70,-19,-12,-18,18,-15,-126,-13,50,-10,-4,-8,-51,-5,-123,-2,35,1,117,3,-117,5,79,7,-32,8,33,10,66,11,47,12,19,13,-44,13,-106,14,61,15,-21,15,114,16,-29,16,27,17,18,17,-89,16,-28,15,-90,14,-5,12,-52,10,53,8,57,5,-17,1,108,-2,-35,-6,106,-9,31,-12,50,-15,-82,-18,-80,-20,77,-21,127,-22,82,-22,-72,-22,-90,-21,9,-19,-60,-18,-59,-16,-17,-14,50,-11,126,-9,-69,-7,-37,-5,-23,-3,-43,-1,-78,1,114,3,46,5,-40,6,-109,8,47,10,-48,11,84,13,-59,14,14,16,28,17,-28,17,90,18,98,18,10,18,53,17,-8,15,76,14,67,12,-25,9,70,7,-119,4,-62,1,-1,-2,97,-4,-20,-7,-65,-9,-44,-11,58,-12,-25,-14,-26,-15,45,-15,-75,-16,106,-16,85,-16,95,-16,-113,-16,-28,-16,85,-15,-18,-15,-75,-14,-87,-13,-32,-12,76,-10,6,-8,-3,-7,75,-4,-66,-2,103,1,36,4,-9,6,-77,9,83,12,-73,14,-53,16,124,18,-82,19,106,20,-99,20,76,20,122,19,54,18,-123,16,125,14,48,12,-71,9,35,7,-122,4,-22,1,106,-1,-3,-4,-73,-6,-97,-8,-64,-10,12,-11,-110,-13,73,-14,51,-15,90,-16,-80,-17,73,-17,31,-17,57,-17,-105,-17,64,-16,46,-15,105,-14,-26,-13,-78,-11,-88,-9,-42,-7,31,-4,-123,-2,-17,0,85,3,-93,5,-46,7,-38,9,-96,11,34,13,98,14,81,15,-1,15,88,16,112,16,65,16,-52,15,34,15,57,14,33,13,-38,11,99,10,-54,8,7,7,29,5,35,3,13,1,-13,-2,-59,-4,-95,-6,-125,-8,117,-10,-122,-12,-60,-14,61,-15,-13,-17,-15,-18,69,-18,-17,-19,-12,-19,93,-18,33,-17,72,-16,-69,-15,-124,-13,-111,-11,-42,-9,79,-6,-34,-4,-105,-1,57,2,-42,4,83,7,-91,9,-62,11,-102,13}; }
	private static byte[] data5(){ return new byte[] {38,15,93,16,66,17,-66,17,-30,17,-91,17,20,17,47,16,-1,14,-115,13,-34,11,5,10,16,8,2,6,-29,3,-49,1,-85,-1,-83,-3,-84,-5,-56,-7,10,-8,105,-10,-6,-12,-91,-13,-116,-14,-101,-15,-25,-16,99,-16,41,-16,39,-16,116,-16,0,-15,-40,-15,-8,-14,86,-12,-2,-11,-36,-9,-23,-7,21,-4,86,-2,-89,0,-19,2,37,5,61,7,53,9,-19,10,110,12,-90,13,-95,14,81,15,-63,15,-22,15,-41,15,126,15,-10,14,42,14,59,13,6,12,-77,10,32,9,107,7,118,5,104,3,55,1,-24,-2,-122,-4,35,-6,-67,-9,123,-11,87,-13,106,-15,-47,-17,-114,-18,-72,-19,74,-19,90,-19,-37,-19,-46,-18,56,-16,-9,-15,0,-12,77,-10,-74,-8,56,-5,-73,-3,29,0,118,2,-118,4,113,6,25,8,-126,9,-71,10,-79,11,-127,12,34,13,-96,13,-9,13,44,14,62,14,46,14,-17,13,-120,13,-32,12,1,12,-38,10,125,9,-44,7,-16,5,-41,3,-115,1,48,-1,-67,-4,83,-6,2,-8,-16,-11,15,-12,-123,-14,81,-15,120,-16,6,-16,-21,-17,43,-16,-66,-16,-116,-15,-104,-14,-56,-13,26,-11,126,-10,-13,-9,119,-7,0,-5,-118,-4,35,-2,-54,-1,122,1,70,3,23,5,6,7,-21,8,-52,10,-104,12,64,14,-77,15,-37,16,-86,17,16,18,-3,17,112,17,106,16,-26,14,-5,12,-80,10,26,8,92,5,114,2,-97,-1,-26,-4,94,-6,31,-8,49,-10,-101,-12,103,-13,-121,-14,-5,-15,-72,-15,-68,-15,-21,-15,68,-14,-74,-14,65,-13,-38,-13,-115,-12,80,-11,41,-10,37,-9,74,-8,-107,-7,28,-5,-52,-4,-75,-2,-53,0,-4,2,52,5,114,7,-112,9,-113,11,65,13,-79,14,-71,15,91,16,-115,16,79,16,-81,15,-83,14,95,13,-42,11,24,10,69,8,100,6,-110,4,-56,2,26,1,-126,-1,5,-2,-101,-4,58,-5,-20,-7,-89,-8,96,-9,33,-10,-34,-12,-79,-13,-119,-14,-107,-15,-66,-16,60,-16,-6,-17,32,-16,-86,-16,-91,-15,12,-13,-31,-12,29,-9,-97,-7,93,-4,55,-1,29,2,-25,4,-117,7,-30,9,-24,11,-116,13,-71,14,126,15,-50,15,-58,15,96,15,-74,14,-44,13,-58,12,-95,11,107,10,47,9,-15,7,-82,6,105,5,29,4,-63,2,74,1,-57,-1,41,-2,125,-4,-77,-6,-17,-8,31,-9,110,-11,-47,-13,113,-14,89,-15,-117,-16,42,-16,29,-16,-117,-16,80,-15,126,-14,3,-12,-57,-11,-67,-9,-46,-7,-14,-5,15,-2,20,0,-8,1,-65,3,73,5,-90,6,-42,7,-36,8,-65,9,-117,10,52,11,-40,11,93,12,-42,12,42,13,103,13,113,13,75,13,-27,12,51,12,46,11,-41,9,52,8,62,6,10,4,-98,1,16,-1,120,-4,-27,-7,112,-9,55,-11,76,-13,-66,-15,-111,-16,-36,-17,-116,-17,-82,-17,51,-16,14,-15,57,-14,-104,-13,37,-11,-53,-10,-126,-8,54,-6,-7,-5,-102,-3,61,-1,-58,0,76,2,-64,3,47,5,-110,6,-20,7,67,9,121,10,-100,11,-106,12,101,13,0,14,82,14,101,14,22,14,-123,13,-107,12,94,11,-37,9,28,8,46,6,31,4,2,2,-41,-1,-52,-3,-37,-5,19,-6,-128,-8,30,-9,-3,-11,14,-11,86,-12,-42,-13,-125,-13,92,-13,91,-13,122,-13,-63,-13,32,-12,-83,-12,92,-11,55,-10,58,-9,108,-8,-48,-7,98,-5,33,-3,7,-1,23,1,40,3,73,5,83,7,76,9,22,11,-91,12,-16,13,-27,14,127,15,-67,15,-110,15,16,15,51,14,6,13,-104,11,-15,9,22,8,45,6,45,4,51,2,56,0,84,-2,-123,-4,-42,-6,68,-7,-41,-9,-115,-10,123,-11,-118,-12,-56,-13,56,-13,-43,-14,-88,-14,-76,-14,-16,-14,114,-13,32,-12,21,-11,53,-10,-114,-9,19,-7,-70,-6,-113,-4,102,-2,77,0,41,2,2,4,-71,5,86,7,-57,8,16,10,29,11,-16,11,-121,12,-24,12,9,13,-8,12,-85,12,47,12,125,11,-92,10,-98,9,122,8,45,7,-57,5,70,4,-81,2,-1,0,76,-1,-103,-3,-32,-5,60,-6,-97,-8,36,-9,-58,-11,-108,-12,-111,-13,-56,-14,69,-14,-6,-15,3,-14,69,-14,-36,-14,-84,-13,-49,-12,33,-10,-84,-9,102,-7,61,-5,55,-3,54,-1,65,1,64,3,55,5,7,7,-81,8,41,10,105,11,109,12,44,13,-86,13,-35,13,-52,13,115,13,-40,12,9,12,-8,10,-57,9,95,8,-25,6,69,5,-95,3,-10,1,72,0,-92,-2,10,-3,-124,-5,16,-6,-75,-8,120,-9,104,-10,115,-11,-79,-12,19,-12,-88,-13,113,-13,107,-13,-92,-13,13,-12,-73,-12,-113,-11,-91,-10,-27,-9,85,-7,-25,-6,-96,-4,99,-2,45,0,-5,1,-75,3,98,5,-20,6,79,8,-116,9,-108,10}; }
	private static byte[] data6(){ return new byte[] {105,11,3,12,103,12,-107,12,-113,12,84,12,-20,11,77,11,-117,10,-104,9,-121,8,70,7,-22,5,104,4,-51,2,10,1,72,-1,108,-3,-97,-5,-55,-7,18,-8,115,-10,2,-11,-59,-13,-55,-14,21,-14,-67,-15,-81,-15,2,-14,-96,-14,-108,-13,-52,-12,74,-10,-19,-9,-67,-7,-108,-5,127,-3,86,-1,40,1,-45,2,99,4,-44,5,10,7,37,8,3,9,-54,9,97,10,-39,10,52,11,101,11,126,11,106,11,57,11,-36,10,83,10,-99,9,-78,8,-101,7,67,6,-50,4,44,3,109,1,-102,-1,-67,-3,-24,-5,35,-6,120,-8,2,-9,-60,-11,-61,-12,10,-12,-107,-13,106,-13,-128,-13,-42,-13,100,-12,33,-11,4,-10,5,-9,30,-8,72,-7,-128,-6,-63,-5,22,-3,104,-2,-57,-1,43,1,-102,2,15,4,-124,5,-1,6,99,8,-54,9,-7,10,18,12,-31,12,126,13,-57,13,-67,13,95,13,-99,12,-113,11,45,10,-120,8,-85,6,-88,4,-115,2,115,0,94,-2,105,-4,-101,-6,17,-7,-74,-9,-89,-10,-46,-11,58,-11,-28,-12,-79,-12,-72,-12,-31,-12,35,-11,-119,-11,-7,-11,-116,-10,40,-9,-24,-9,-61,-8,-72,-7,-44,-6,10,-4,110,-3,-28,-2,-120,0,42,2,-14,3,-99,5,66,7,-64,8,22,10,47,11,6,12,-110,12,-52,12,-73,12,85,12,-87,11,-60,10,-91,9,101,8,7,7,-101,5,35,4,-78,2,82,1,-8,-1,-74,-2,125,-3,84,-4,56,-5,31,-6,21,-7,12,-8,27,-9,48,-10,97,-11,-83,-12,33,-12,-56,-13,-87,-13,-46,-13,65,-12,-1,-12,15,-10,102,-9,1,-7,-38,-6,-42,-4,-3,-2,29,1,56,3,48,5,6,7,-109,8,-18,9,-22,10,-83,11,19,12,52,12,16,12,-72,11,35,11,123,10,-94,9,-59,8,-57,7,-53,6,-62,5,-80,4,-102,3,110,2,66,1,-5,-1,-91,-2,74,-3,-30,-5,-128,-6,27,-7,-47,-9,-104,-10,-112,-11,-79,-12,23,-12,-68,-13,-78,-13,-18,-13,123,-12,76,-11,96,-10,-93,-9,32,-7,-88,-6,78,-4,-24,-3,-124,-1,7,1,115,2,-62,3,-20,4,1,6,-21,6,-70,7,106,8,6,9,-118,9,-9,9,80,10,-119,10,-90,10,-94,10,108,10,16,10,117,9,-89,8,-99,7,80,6,-43,4,47,3,91,1,125,-1,-121,-3,-95,-5,-51,-7,29,-8,-97,-10,99,-11,112,-12,-52,-13,117,-13,113,-13,-76,-13,61,-12,1,-11,-9,-11,16,-9,72,-8,-111,-7,-28,-6,57,-4,-111,-3,-34,-2,52,0,116,1,-81,2,-31,3,7,5,39,6,50,7,50,8,25,9,-33,9,-126,10,-10,10,59,11,70,11,20,11,-89,10,-6,9,13,9,-18,7,-97,6,45,5,-99,3,1,2,93,0,-61,-2,51,-3,-63,-5,122,-6,79,-7,86,-8,-121,-9,-37,-10,104,-10,10,-10,-32,-11,-47,-11,-27,-11,29,-10,105,-10,-28,-10,113,-9,40,-8,7,-7,-2,-7,33,-5,94,-4,-66,-3,56,-1,-61,0,92,2,-11,3,-116,5,10,7,101,8,-103,9,-107,10,87,11,-40,11,18,12,5,12,-79,11,26,11,74,10,66,9,14,8,-73,6,69,5,-59,3,53,2,-84,0,46,-1,-69,-3,95,-4,24,-5,-20,-7,-32,-8,-21,-9,35,-9,121,-10,-3,-11,-95,-11,118,-11,116,-11,-100,-11,-7,-11,127,-10,55,-9,22,-8,28,-7,74,-6,-112,-5,-13,-4,99,-2,-27,-1,94,1,-48,2,49,4,122,5,-87,6,-84,7,-109,8,68,9,-48,9,44,10,82,10,82,10,34,10,-58,9,72,9,-99,8,-45,7,-28,6,-28,5,-64,4,-112,3,75,2,-7,0,-95,-1,69,-2,-30,-4,-108,-5,81,-6,37,-7,22,-8,33,-9,95,-10,-69,-11,82,-11,24,-11,20,-11,75,-11,-78,-11,84,-10,36,-9,38,-8,77,-7,-93,-6,9,-4,-117,-3,20,-1,-92,0,48,2,-81,3,26,5,112,6,-97,7,-99,8,123,9,23,10,-113,10,-61,10,-52,10,-103,10,50,10,-94,9,-37,8,-4,7,-20,6,-49,5,-111,4,77,3,-14,1,-98,0,77,-1,-1,-3,-59,-4,-110,-5,124,-6,119,-7,-112,-8,-59,-9,28,-9,-99,-10,62,-10,14,-10,5,-10,40,-10,122,-10,-7,-10,-89,-9,116,-8,117,-7,-121,-6,-55,-5,17,-3,116,-2,-30,-1,73,1,-86,2,-4,3,55,5,87,6,88,7,44,8,-29,8,102,9,-59,9,-16,9,-12,9,-51,9,-128,9,8,9,116,8,-83,7,-43,6,-41,5,-62,4,-109,3,79,2,-9,0,-106,-1,41,-2,-69,-4,84,-5,3,-6,-61,-8,-88,-9,-76,-10,-19,-11,97,-11,12,-11,-9,-12,39,-11,-114,-11,57,-10,20,-9,33,-8,86,-7,-87,-6,19,-4,-120,-3,-12,-2,98,0,-72,1,-4,2,38,4,50,5,36,6,-13,6,-99,7,46,8,-102,8}; }
	private static byte[] data7(){ return new byte[] {-18,8,34,9,55,9,48,9,3,9,-71,8,73,8,-75,7,-8,6,28,6,18,5,-13,3,-93,2,77,1,-29,-1,117,-2,8,-3,-84,-5,97,-6,61,-7,56,-8,100,-9,-61,-10,90,-10,37,-10,35,-10,85,-10,-78,-10,52,-9,-28,-9,-96,-8,-125,-7,105,-6,103,-5,111,-4,122,-3,-105,-2,-81,-1,-33,0,3,2,46,3,84,4,119,5,-116,6,-108,7,127,8,76,9,-19,9,94,10,-108,10,-107,10,75,10,-54,9,6,9,9,8,-48,6,120,5,-9,3,109,2,-45,0,68,-1,-61,-3,91,-4,20,-5,-10,-7,14,-7,74,-8,-67,-9,86,-9,28,-9,3,-9,14,-9,51,-9,119,-9,-51,-9,61,-8,-64,-8,92,-7,16,-6,-39,-6,-56,-5,-61,-4,-32,-3,10,-1,79,0,-105,1,-18,2,55,4,125,5,-90,6,-78,7,-114,8,60,9,-77,9,-21,9,-15,9,-77,9,67,9,-94,8,-42,7,-24,6,-26,5,-55,4,-82,3,-121,2,104,1,72,0,53,-1,49,-2,51,-3,67,-4,93,-5,-127,-6,-81,-7,-21,-8,54,-8,-100,-9,26,-9,-75,-10,123,-10,109,-10,-115,-10,-21,-10,126,-9,73,-8,76,-7,122,-6,-38,-5,80,-3,-27,-2,122,0,19,2,-100,3,-7,4,66,6,74,7,43,8,-49,8,58,9,113,9,116,9,72,9,-11,8,124,8,-19,7,64,7,-117,6,-65,5,-26,4,7,4,28,3,40,2,45,1,30,0,22,-1,-12,-3,-30,-4,-71,-5,-81,-6,-93,-7,-65,-8,-26,-9,70,-9,-62,-10,125,-10,107,-10,-113,-10,-16,-10,-124,-9,72,-8,57,-7,71,-6,119,-5,-78,-4,-7,-3,53,-1,110,0,-108,1,-84,2,-95,3,-111,4,83,5,21,6,-86,6,53,7,-92,7,-2,7,65,8,109,8,124,8,109,8,60,8,-26,7,103,7,-62,6,-19,5,-11,4,-46,3,-112,2,45,1,-63,-1,73,-2,-34,-4,117,-5,49,-6,12,-7,16,-8,75,-9,-70,-10,103,-10,78,-10,109,-10,-70,-10,67,-9,-30,-9,-76,-8,-106,-7,-111,-6,-109,-5,-93,-4,-82,-3,-60,-2,-53,-1,-37,0,-32,1,-30,2,-46,3,-66,4,-101,5,98,6,33,7,-73,7,61,8,-101,8,-48,8,-35,8,-71,8,105,8,-23,7,62,7,102,6,103,5,78,4,32,3,-32,1,-95,0,92,-1,41,-2,0,-3,-12,-5,-7,-6,37,-6,113,-7,-33,-8,108,-8,29,-8,-22,-9,-42,-9,-29,-9,6,-8,74,-8,-88,-8,31,-7,-75,-7,100,-6,46,-5,21,-4,25,-3,44,-2,85,-1,-124,0,-62,1,-4,2,45,4,83,5,97,6,79,7,21,8,-81,8,23,9,80,9,78,9,30,9,-70,8,32,8,103,7,-127,6,-123,5,111,4,74,3,26,2,-19,0,-77,-1,-110,-2,119,-3,107,-4,125,-5,-108,-6,-40,-7,37,-7,-102,-8,40,-8,-39,-9,-83,-9,-92,-9,-65,-9,-1,-9,100,-8,-21,-8,-102,-7,101,-6,74,-5,74,-4,92,-3,122,-2,-93,-1,-54,0,-16,1,14,3,23,4,8,5,-28,5,-103,6,56,7,-87,7,-2,7,43,8,51,8,20,8,-40,7,116,7,-7,6,89,6,-91,5,-43,4,-17,3,-7,2,-8,1,-22,0,-39,-1,-60,-2,-79,-3,-87,-4,-96,-5,-72,-6,-36,-7,33,-7,-128,-8,4,-8,-85,-9,126,-9,115,-9,-102,-9,-24,-9,95,-8,-5,-8,-64,-7,-101,-6,-97,-5,-81,-4,-37,-3,12,-1,60,0,119,1,-104,2,-64,3,-65,4,-72,5,-125,6,61,7,-61,7,42,8,98,8,116,8,89,8,26,8,-78,7,38,7,122,6,-75,5,-44,4,-26,3,-28,2,-35,1,-50,0,-70,-1,-79,-2,-83,-3,-70,-4,-49,-5,-1,-6,61,-6,-102,-7,11,-7,-98,-8,76,-8,33,-8,21,-8,45,-8,105,-8,-58,-8,72,-7,-16,-7,-84,-6,-114,-5,122,-4,-125,-3,-108,-2,-85,-1,-54,0,-36,1,-14,2,-22,3,-40,4,-97,5,90,6,-27,6,94,7,-86,7,-38,7,-31,7,-51,7,-114,7,59,7,-64,6,48,6,-127,5,-66,4,-40,3,-16,2,-22,1,-30,0,-54,-1,-78,-2,-105,-3,-124,-4,118,-5,-125,-6,-92,-7,-28,-8,76,-8,-44,-9,-110,-9,115,-9,-112,-9,-47,-9,74,-8,-27,-8,-89,-7,-116,-6,-122,-5,-108,-4,-83,-3,-48,-2,-20,-1,-4,0,4,2,-10,2,-44,3,-94,4,75,5,-22,5,102,6,-50,6,23,7,73,7,96,7,92,7,62,7,2,7,-90,6,50,6,-102,5,-18,4,28,4,58,3,60,2,52,1,24,0,-5,-2,-39,-3,-47,-4,-57,-5,-29,-6,19,-6,101,-7,-30,-8,125,-8,72,-8,59,-8,83,-8,-113,-8,-16,-8,101,-7,-2,-7,-95,-6,101,-5,39,-4,2,-3,-41,-3,-64,-2,-90,-1,-110,0,-126,1,115,2,94,3,65,4,27,5,-32,5,-102,6,47,7,-81,7}; }
	private static byte[] data8(){ return new byte[] {-1,7,50,8,43,8,0,8,-98,7,18,7,88,6,122,5,122,4,90,3,50,2,-4,0,-52,-1,-94,-2,-121,-3,-120,-4,-100,-5,-40,-6,43,-6,-89,-7,70,-7,3,-7,-33,-8,-40,-8,-21,-8,18,-7,86,-7,-86,-7,20,-6,-111,-6,38,-5,-58,-5,-122,-4,80,-3,48,-2,40,-1,31,0,41,1,41,2,50,3,38,4,16,5,-35,5,-111,6,30,7,125,7,-68,7,-64,7,-88,7,89,7,-21,6,91,6,-90,5,-27,4,13,4,45,3,71,2,95,1,121,0,-103,-1,-71,-2,-25,-3,30,-3,95,-4,-86,-5,1,-5,101,-6,-37,-7,96,-7,-1,-8,-75,-8,-116,-8,-120,-8,-92,-8,-20,-8,92,-7,-10,-7,-71,-6,-94,-5,-97,-4,-64,-3,-23,-2,29,0,79,1,120,2,-118,3,-114,4,104,5,31,6,-84,6,22,7,75,7,107,7,83,7,40,7,-36,6,111,6,-4,5,104,5,-50,4,38,4,111,3,-82,2,-26,1,19,1,64,0,93,-1,-126,-2,-101,-3,-64,-4,-27,-5,24,-5,92,-6,-66,-7,53,-7,-41,-8,-106,-8,-124,-8,-103,-8,-38,-8,68,-7,-45,-7,-126,-6,78,-5,46,-4,31,-3,22,-2,18,-1,13,0,-5,0,-34,1,-82,2,114,3,29,4,-71,4,65,5,-76,5,24,6,97,6,-105,6,-69,6,-63,6,-77,6,-118,6,62,6,-38,5,77,5,-81,4,-27,3,13,3,16,2,14,1,-14,-1,-40,-2,-71,-3,-79,-4,-82,-5,-47,-6,6,-6,107,-7,-16,-8,-94,-8,-128,-8,-122,-8,-73,-8,10,-7,-128,-7,13,-6,-69,-6,109,-5,64,-4,12,-3,-26,-3,-66,-2,-101,-1,113,0,73,1,21,2,-32,2,-93,3,87,4,-6,4,-111,5,12,6,119,6,-64,6,-19,6,-4,6,-31,6,-87,6,72,6,-55,5,38,5,110,4,-111,3,-75,2,-81,1,-61,0,-69,-1,-48,-2,-34,-3,9,-3,61,-4,-113,-5,-17,-6,114,-6,13,-6,-61,-7,-109,-7,122,-7,127,-7,-105,-7,-52,-7,21,-6,119,-6,-16,-6,123,-5,33,-4,-43,-4,-94,-3,119,-2,105,-1,81,0,76,1,58,2,42,3,11,4,-38,4,-109,5,46,6,-84,6,4,7,51,7,63,7,29,7,-34,6,112,6,-18,5,62,5,-120,4,-83,3,-40,2,-27,1,-1,0,14,0,35,-1,71,-2,101,-3,-92,-4,-26,-5,72,-5,-75,-6,63,-6,-34,-7,-103,-7,111,-7,98,-7,112,-7,-96,-7,-24,-7,80,-6,-47,-6,107,-5,32,-4,-28,-4,-66,-3,-101,-2,-125,-1,110,0,82,1,50,2,10,3,-52,3,-126,4,24,5,-104,5,0,6,70,6,113,6,-125,6,110,6,73,6,-5,5,-97,5,38,5,-107,4,-6,3,63,3,-123,2,-82,1,-35,0,0,0,38,-1,76,-2,118,-3,-81,-4,-16,-5,67,-5,-84,-6,40,-6,-56,-7,127,-7,84,-7,78,-7,99,-7,-99,-7,-9,-7,109,-6,-1,-6,-85,-5,109,-4,63,-3,34,-2,11,-1,1,0,-18,0,-39,1,-70,2,-117,3,75,4,-10,4,-125,5,-3,5,80,6,-118,6,-98,6,-105,6,108,6,36,6,-62,5,65,5,-83,4,0,4,72,3,-126,2,-81,1,-33,0,1,0,51,-1,94,-2,-107,-3,-41,-4,44,-4,-117,-5,7,-5,-113,-6,51,-6,-14,-7,-60,-7,-69,-7,-58,-7,-13,-7,58,-6,-100,-6,25,-5,-85,-5,88,-4,21,-3,-29,-3,-73,-2,-108,-1,115,0,78,1,36,2,-18,2,-85,3,86,4,-28,4,98,5,-64,5,7,6,47,6,65,6,45,6,12,6,-63,5,110,5,-11,4,114,4,-44,3,42,3,107,2,-96,1,-52,0,-14,-1,23,-1,57,-2,99,-3,-106,-4,-43,-5,39,-5,-112,-6,17,-6,-74,-7,120,-7,93,-7,106,-7,-109,-7,-26,-7,87,-6,-27,-6,-115,-5,72,-4,21,-3,-22,-3,-54,-2,-93,-1,127,0,87,1,23,2,-41,2,119,3,18,4,-111,4,-1,4,87,5,-96,5,-56,5,-28,5,-30,5,-52,5,-96,5,89,5,-2,4,-121,4,-4,3,87,3,-89,2,-30,1,16,1,58,0,88,-1,127,-2,-93,-3,-39,-4,32,-4,121,-5,-18,-6,125,-6,42,-6,-10,-7,-29,-7,-25,-7,21,-6,80,-6,-82,-6,27,-5,-100,-5,48,-4,-55,-4,124,-3,40,-2,-28,-2,-99,-1,94,0,27,1,-37,1,-107,2,73,3,-12,3,-105,4,24,5,-99,5,-17,5,59,6,89,6,93,6,59,6,-9,5,-113,5,9,5,97,4,-89,3,-46,2,-13,1,10,1,25,0,53,-1,86,-2,-118,-3,-54,-4,43,-4,-108,-5,42,-5,-62,-6,-116,-6,88,-6,82,-6,77,-6,110,-6,-103,-6,-41,-6,45,-5,-112,-5,7,-4,-114,-4,32,-3,-57,-3,122,-2,54,-1,-3,-1,-48,0,-107,1,109,2,30,3,-28,3,120,4,14,5,122,5,-50,5,6,6,18,6}; }
	private static byte[] data9(){ return new byte[] {8,6,-45,5,-119,5,30,5,-96,4,10,4,100,3,-72,2,-1,1,75,1,-115,0,-40,-1,38,-1,119,-2,-48,-3,50,-3,-104,-4,20,-4,-108,-5,37,-5,-56,-6,123,-6,67,-6,41,-6,34,-6,62,-6,116,-6,-53,-6,63,-5,-44,-5,122,-4,70,-3,26,-2,-3,-2,-26,-1,-50,0,-76,1,-119,2,82,3,0,4,-103,4,21,5,109,5,-84,5,-56,5,-53,5,-76,5,127,5,60,5,-34,4,116,4,-2,3,115,3,-21,2,71,2,-79,1,-4,0,85,0,-103,-1,-22,-2,51,-2,-127,-3,-38,-4,54,-4,-90,-5,35,-5,-70,-6,108,-6,55,-6,36,-6,47,-6,90,-6,-90,-6,11,-5,-112,-5,39,-4,-46,-4,-118,-3,72,-2,14,-1,-51,-1,-112,0,75,1,-12,1,-102,2,37,3,-84,3,31,4,125,4,-43,4,15,5,67,5,89,5,100,5,83,5,51,5,-13,4,-89,4,53,4,-71,3,24,3,117,2,-82,1,-20,0,15,0,63,-1,98,-2,-108,-3,-53,-4,28,-4,125,-5,-1,-6,-104,-6,83,-6,50,-6,38,-6,71,-6,117,-6,-50,-6,49,-5,-83,-5,59,-4,-48,-4,116,-3,32,-2,-52,-2,-127,-1,45,0,-38,0,-122,1,38,2,-60,2,86,3,-33,3,86,4,-67,4,16,5,79,5,116,5,-128,5,114,5,70,5,3,5,-99,4,41,4,-106,3,-9,2,68,2,-118,1,-58,0,-1,-1,61,-1,-124,-2,-48,-3,50,-3,-101,-4,32,-4,-80,-5,88,-5,21,-5,-25,-6,-46,-6,-53,-6,-35,-6,5,-5,59,-5,-117,-5,-23,-5,91,-4,-34,-4,109,-3,16,-2,-72,-2,113,-1,40,0,-22,0,-86,1,98,2,20,3,-78,3,71,4,-65,4,35,5,109,5,-106,5,-90,5,-108,5,102,5,30,5,-72,4,66,4,-81,3,22,3,100,2,-78,1,-8,0,62,0,-124,-1,-45,-2,34,-2,-124,-3,-26,-4,100,-4,-22,-5,-122,-5,55,-5,-8,-6,-45,-6,-61,-6,-54,-6,-20,-6,32,-5,111,-5,-49,-5,73,-4,-48,-4,105,-3,14,-2,-63,-2,118,-1,46,0,-28,0,-106,1,64,2,-35,2,109,3,-22,3,89,4,-83,4,-18,4,21,5,38,5,32,5,4,5,-49,4,-121,4,41,4,-68,3,62,3,-80,2,26,2,118,1,-50,0,30,0,107,-1,-59,-2,22,-2,120,-3,-30,-4,86,-4,-33,-5,120,-5,35,-5,-20,-6,-60,-6,-66,-6,-55,-6,-11,-6,52,-5,-113,-5,-3,-5,-126,-4,21,-3,-72,-3,103,-2,27,-1,-42,-1,-112,0,72,1,-3,1,-93,2,61,3,-60,3,62,4,-104,4,-21,4,20,5,52,5,47,5,24,5,-25,4,-99,4,66,4,-48,3,80,3,-62,2,36,2,127,1,-36,0,42,0,-119,-1,-39,-2,63,-2,-94,-3,20,-3,-109,-4,33,-4,-63,-5,116,-5,58,-5,22,-5,6,-5,14,-5,46,-5,97,-5,-82,-5,11,-4,126,-4,2,-3,-110,-3,50,-2,-35,-2,-120,-1,57,0,-26,0,-114,1,51,2,-59,2,78,3,-55,3,42,4,-125,4,-71,4,-32,4,-14,4,-23,4,-48,4,-99,4,88,4,-2,3,-106,3,27,3,-106,2,-1,1,101,1,-69,0,19,0,96,-1,-75,-2,12,-2,106,-3,-44,-4,76,-4,-46,-5,114,-5,32,-5,-16,-6,-43,-6,-39,-6,-14,-6,45,-5,122,-5,-26,-5,92,-4,-14,-4,-123,-3,49,-2,-41,-2,-122,-1,50,0,-41,0,123,1,17,2,-98,2,25,3,-120,3,-27,3,49,4,110,4,-107,4,-80,4,-78,4,-93,4,-126,4,74,4,4,4,-88,3,60,3,-67,2,47,2,-107,1,-14,0,73,0,-101,-1,-17,-2,72,-2,-89,-3,17,-3,-114,-4,23,-4,-66,-5,116,-5,71,-5,45,-5,48,-5,69,-5,116,-5,-74,-5,8,-4,107,-4,-35,-4,89,-3,-35,-3,110,-2,-3,-2,-99,-1,49,0,-48,0,99,1,-5,1,-120,2,16,3,-118,3,-4,3,87,4,-93,4,-42,4,-11,4,-10,4,-29,4,-81,4,103,4,-2,3,-122,3,-10,2,90,2,-82,1,0,1,71,0,-104,-1,-29,-2,67,-2,-89,-3,37,-3,-89,-4,73,-4,-11,-5,-71,-5,-110,-5,119,-5,121,-5,-125,-5,-89,-5,-46,-5,21,-4,97,-4,-64,-4,44,-3,-93,-3,38,-2,-74,-2,73,-1,-22,-1,-123,0,43,1,-56,1,98,2,-14,2,114,3,-32,3,65,4,127,4,-77,4,-64,4,-61,4,-100,4,110,4,28,4,-63,3,81,3,-45,2,81,2,-71,1,46,1,-110,0,6,0,108,-1,-26,-2,88,-2,-39,-3,95,-3,-20,-4,-121,-4,46,-4,-29,-5,-91,-5,127,-5,100,-5,101,-5,118,-5,-91,-5,-29,-5,65,-4,-85,-4,49,-3,-61,-3,102,-2,16,-1,-54,-1,118,0,46,1,-48,1,110,2,-2,2,112,3,-31,3,41,4,103,4,-123,4,-111,4,-122,4,105,4}; }
	private static byte[] data10(){ return new byte[] {56,4,-11,3,-88,3,72,3,-32,2,111,2,-15,1,115,1,-25,0,95,0,-52,-1,57,-1,-89,-2,28,-2,-109,-3,22,-3,-96,-4,59,-4,-24,-5,-90,-5,124,-5,103,-5,108,-5,-118,-5,-66,-5,10,-4,104,-4,-37,-4,94,-3,-23,-3,-128,-2,21,-1,-77,-1,72,0,-35,0,105,1,-19,1,105,2,-42,2,55,3,-119,3,-49,3,5,4,42,4,69,4,72,4,63,4,33,4,-13,3,-80,3,95,3,-10,2,-125,2,-6,1,106,1,-58,0,42,0,124,-1,-34,-2,52,-2,-91,-3,16,-3,-103,-4,44,-4,-36,-5,-97,-5,123,-5,111,-5,123,-5,-99,-5,-41,-5,29,-4,125,-4,-28,-4,88,-3,-39,-3,90,-2,-27,-2,114,-1,1,0,-114,0,22,1,-100,1,24,2,-110,2,-3,2,95,3,-77,3,-10,3,46,4,72,4,90,4,76,4,50,4,-5,3,-72,3,86,3,-20,2,113,2,-26,1,89,1,-65,0,39,0,-113,-1,-7,-2,106,-2,-28,-3,112,-3,1,-3,-86,-4,94,-4,32,-4,-2,-5,-36,-5,-33,-5,-29,-5,1,-4,44,-4,103,-4,-77,-4,11,-3,113,-3,-23,-3,99,-2,-17,-2,123,-1,15,0,-93,0,57,1,-56,1,86,2,-44,2,70,3,-87,3,-7,3,51,4,89,4,107,4,95,4,69,4,13,4,-57,3,107,3,4,3,-121,2,9,2,123,1,-23,0,86,0,-58,-1,51,-1,-85,-2,39,-2,-82,-3,62,-3,-34,-4,-124,-4,68,-4,13,-4,-17,-5,-40,-5,-31,-5,-16,-5,27,-4,86,-4,-98,-4,-4,-4,100,-3,-38,-3,91,-2,-28,-2,112,-1,7,0,-109,0,37,1,-88,1,42,2,-100,2,4,3,93,3,-92,3,-35,3,1,4,19,4,19,4,-1,3,-37,3,-91,3,95,3,8,3,-89,2,55,2,-63,1,64,1,-69,0,49,0,-88,-1,28,-1,-107,-2,18,-2,-99,-3,43,-3,-49,-4,119,-4,55,-4,6,-4,-28,-5,-34,-5,-30,-5,3,-4,48,-4,117,-4,-58,-4,45,-3,-101,-3,29,-2,-93,-2,48,-1,-64,-1,86,0,-33,0,115,1,-15,1,113,2,-31,2,60,3,-110,3,-52,3,-6,3,20,4,21,4,12,4,-27,3,-75,3,110,3,26,3,-72,2,75,2,-47,1,85,1,-53,0,69,0,-65,-1,54,-1,-72,-2,59,-2,-56,-3,97,-3,0,-3,-77,-4,110,-4,65,-4,30,-4,15,-4,20,-4,38,-4,81,-4,-124,-4,-44,-4,37,-3,-113,-3,-2,-3,123,-2,-4,-2,-123,-1,14,0,-102,0,35,1,-96,1,27,2,-119,2,-24,2,62,3,-126,3,-76,3,-38,3,-27,3,-24,3,-44,3,-82,3,-128,3,52,3,-21,2,-123,2,29,2,-88,1,45,1,-88,0,37,0,-102,-1,21,-1,-120,-2,17,-2,-111,-3,45,-3,-57,-4,125,-4,57,-4,19,-4,-11,-5,-9,-5,5,-4,46,-4,102,-4,-78,-4,15,-3,120,-3,-17,-3,109,-2,-13,-2,122,-1,1,0,-119,0,5,1,-125,1,-14,1,90,2,-71,2,6,3,73,3,124,3,-95,3,-72,3,-67,3,-75,3,-101,3,114,3,60,3,-16,2,-93,2,57,2,-46,1,86,1,-40,0,81,0,-55,-1,66,-1,-68,-2,65,-2,-57,-3,96,-3,0,-3,-76,-4,118,-4,78,-4,52,-4,49,-4,61,-4,94,-4,-118,-4,-54,-4,22,-3,108,-3,-46,-3,53,-2,-84,-2,29,-1,-105,-1,20,0,-114,0,12,1,-128,1,-12,1,91,2,-62,2,20,3,98,3,-101,3,-57,3,-32,3,-29,3,-42,3,-81,3,126,3,45,3,-38,2,101,2,-12,1,111,1,-22,0,92,0,-43,-1,77,-1,-50,-2,90,-2,-27,-3,-119,-3,47,-3,-21,-4,-81,-4,-123,-4,102,-4,90,-4,81,-4,101,-4,-122,-4,-71,-4,-5,-4,74,-3,-89,-3,13,-2,-126,-2,-10,-2,117,-1,-16,-1,113,0,-20,0,100,1,-43,1,62,2,-99,2,-16,2,51,3,102,3,-113,3,-98,3,-89,3,-108,3,122,3,71,3,12,3,-66,2,102,2,1,2,-104,1,29,1,-86,0,39,0,-87,-1,50,-1,-74,-2,71,-2,-34,-3,126,-3,42,-3,-28,-4,-85,-4,-124,-4,110,-4,101,-4,113,-4,-119,-4,-74,-4,-18,-4,59,-3,-116,-3,-15,-3,88,-2,-54,-2,67,-1,-67,-1,54,0,-71,0,40,1,-93,1,4,2,106,2,-68,2,5,3,65,3,104,3,-122,3,-113,3,-119,3,115,3,73,3,23,3,-50,2,-128,2,32,2,-73,1,74,1,-45,0,93,0,-32,-1,107,-1,-19,-2,-124,-2,15,-2,-76,-3,90,-3,20,-3,-47,-4,-84,-4,-123,-4,-128,-4,125,-4,-108,-4,-77,-4,-21,-4,40,-3,119,-3,-46,-3,52,-2,-94,-2,22,-1,-115,-1,5,0,126,0,-12,0,102,1,-49,1,52,2,-118,2,-37,2,19,3,74,3,101,3,121,3,120,3,105,3,75,3}; }
	private static byte[] data11(){ return new byte[] {25,3,-35,2,-111,2,61,2,-39,1,115,1,-1,0,-113,0,17,0,-99,-1,39,-1,-77,-2,77,-2,-27,-3,-114,-3,66,-3,-3,-4,-50,-4,-90,-4,-105,-4,-114,-4,-98,-4,-73,-4,-27,-4,28,-3,102,-3,-71,-3,22,-2,126,-2,-22,-2,94,-1,-47,-1,75,0,-71,0,53,1,-105,1,4,2,85,2,-83,2,-24,2,35,3,71,3,92,3,106,3,89,3,73,3,26,3,-24,2,-92,2,84,2,-6,1,-109,1,41,1,-72,0,70,0,-50,-1,96,-1,-24,-2,-124,-2,24,-2,-65,-3,111,-3,40,-3,-13,-4,-55,-4,-81,-4,-91,-4,-87,-4,-65,-4,-30,-4,23,-3,84,-3,-92,-3,-9,-3,91,-2,-62,-2,50,-1,-89,-1,20,0,-114,0,-9,0,104,1,-55,1,40,2,121,2,-63,2,-6,2,39,3,67,3,81,3,78,3,62,3,30,3,-20,2,-78,2,102,2,21,2,-75,1,79,1,-27,0,115,0,2,0,-115,-1,31,-1,-76,-2,78,-2,-13,-3,-100,-3,87,-3,25,-3,-20,-4,-54,-4,-68,-4,-72,-4,-56,-4,-27,-4,14,-3,75,-3,-115,-3,-28,-3,57,-2,-94,-2,7,-1,118,-1,-25,-1,86,0,-58,0,53,1,-106,1,-8,1,74,2,-107,2,-45,2,3,3,36,3,59,3,60,3,53,3,24,3,-13,2,-70,2,123,2,43,2,-44,1,114,1,9,1,-95,0,46,0,-63,-1,84,-1,-26,-2,-124,-2,33,-2,-52,-3,-126,-3,64,-3,15,-3,-22,-4,-45,-4,-52,-4,-45,-4,-24,-4,15,-3,64,-3,126,-3,-51,-3,28,-2,-128,-2,-34,-2,79,-1,-71,-1,40,0,-106,0,0,1,100,1,-59,1,27,2,102,2,-83,2,-34,2,7,3,33,3,40,3,40,3,20,3,-14,2,-61,2,-121,2,63,2,-19,1,-108,1,46,1,-53,0,93,0,-14,-1,-126,-1,25,-1,-78,-2,84,-2,-3,-3,-83,-3,108,-3,51,-3,9,-3,-18,-4,-33,-4,-30,-4,-17,-4,15,-3,58,-3,114,-3,-73,-3,5,-2,98,-2,-67,-2,37,-1,-115,-1,-8,-1,101,0,-51,0,53,1,-107,1,-19,1,59,2,-126,2,-72,2,-23,2,2,3,22,3,23,3,11,3,-16,2,-55,2,-111,2,83,2,4,2,-78,1,80,1,-16,0,-123,0,30,0,-78,-1,75,-1,-28,-2,-122,-2,43,-2,-38,-3,-108,-3,88,-3,44,-3,9,-3,-10,-4,-15,-4,-6,-4,19,-3,55,-3,105,-3,-88,-3,-17,-3,68,-2,-100,-2,-1,-2,98,-1,-48,-1,53,0,-96,0,3,1,99,1,-65,1,13,2,88,2,-109,2,-58,2,-26,2,0,3,4,3,2,3,-22,2,-53,2,-101,2,95,2,25,2,-54,1,113,1,20,1,-81,0,72,0,-29,-1,118,-1,22,-1,-79,-2,91,-2,6,-2,-66,-3,-127,-3,77,-3,40,-3,13,-3,5,-3,5,-3,25,-3,54,-3,98,-3,-103,-3,-33,-3,39,-2,-123,-2,-41,-2,67,-1,-97,-1,12,0,110,0,-44,0,52,1,-113,1,-27,1,42,2,113,2,-99,2,-51,2,-30,2,-11,2,-16,2,-26,2,-57,2,-96,2,109,2,42,2,-30,1,-112,1,50,1,-44,0,114,0,9,0,-87,-1,65,-1,-28,-2,-120,-2,52,-2,-24,-3,-90,-3,113,-3,69,-3,40,-3,25,-3,20,-3,34,-3,54,-3,98,-3,-115,-3,-48,-3,19,-2,99,-2,-67,-2,24,-1,123,-1,-32,-1,67,0,-88,0,6,1,99,1,-76,1,4,2,67,2,-128,2,-87,2,-52,2,-37,2,-26,2,-42,2,-55,2,-95,2,119,2,56,2,-11,1,-88,1,83,1,-8,0,-103,0,52,0,-44,-1,111,-1,14,-1,-73,-2,92,-2,22,-2,-52,-3,-105,-3,100,-3,70,-3,44,-3,41,-3,41,-3,62,-3,93,-3,-120,-3,-64,-3,0,-2,76,-2,-95,-2,-10,-2,89,-1,-76,-1,26,0,121,0,-39,0,52,1,-117,1,-40,1,31,2,88,2,-117,2,-83,2,-58,2,-46,2,-52,2,-62,2,-96,2,124,2,70,2,6,2,-62,1,110,1,26,1,-70,0,93,0,-4,-1,-102,-1,62,-1,-32,-2,-114,-2,60,-2,-9,-3,-73,-3,-120,-3,97,-3,68,-3,59,-3,54,-3,71,-3,92,-3,-123,-3,-75,-3,-15,-3,54,-2,-124,-2,-40,-2,52,-1,-116,-1,-12,-1,77,0,-80,0,10,1,92,1,-79,1,-13,1,53,2,103,2,-110,2,-83,2,-67,2,-62,2,-76,2,-92,2,124,2,81,2,20,2,-42,1,-123,1,56,1,-34,0,-127,0,38,0,-59,-1,105,-1,13,-1,-75,-2,103,-2,30,-2,-33,-3,-87,-3,126,-3,97,-3,75,-3,75,-3,74,-3,101,-3,127,-3,-81,-3,-31,-3,35,-2,107,-2,-67,-2,18,-1,109,-1,-57,-1,40,0,-127,0,-33,0,49,1,-120,1,-53,1,18,2,67,2,117,2,-111,2,-86,2,-82,2,-82,2,-101,2,126,2,87,2}; }
	private static byte[] data12(){ return new byte[] {34,2,-27,1,-96,1,82,1,-2,0,-90,0,72,0,-18,-1,-113,-1,58,-1,-32,-2,-110,-2,70,-2,5,-2,-54,-3,-97,-3,120,-3,103,-3,84,-3,92,-3,103,-3,-127,-3,-87,-3,-41,-3,20,-2,86,-2,-94,-2,-13,-2,73,-1,-93,-1,1,0,89,0,-73,0,7,1,95,1,-94,1,-20,1,32,2,83,2,121,2,-112,2,-96,2,-97,2,-107,2,125,2,90,2,46,2,-12,1,-78,1,108,1,24,1,-55,0,109,0,21,0,-69,-1,96,-1,12,-1,-73,-2,111,-2,41,-2,-17,-3,-66,-3,-106,-3,123,-3,106,-3,105,-3,110,-3,-121,-3,-94,-3,-47,-3,4,-2,67,-2,-119,-2,-40,-2,43,-1,-127,-1,-39,-1,52,0,-119,0,-31,0,50,1,126,1,-59,1,-2,1,54,2,87,2,124,2,-119,2,-109,2,-118,2,122,2,91,2,53,2,0,2,-58,1,-127,1,54,1,-25,0,-115,0,59,0,-34,-1,-119,-1,52,-1,-32,-2,-104,-2,79,-2,19,-2,-34,-3,-79,-3,-106,-3,125,-3,121,-3,119,-3,-116,-3,-95,-3,-53,-3,-5,-3,48,-2,120,-2,-68,-2,12,-1,97,-1,-78,-1,14,0,100,0,-70,0,9,1,89,1,-101,1,-34,1,17,2,61,2,95,2,121,2,124,2,-122,2,111,2,94,2,56,2,12,2,-44,1,-105,1,75,1,3,1,-81,0,92,0,6,0,-79,-1,90,-1,10,-1,-70,-2,119,-2,52,-2,2,-2,-51,-3,-78,-3,-110,-3,-118,-3,-123,-3,-112,-3,-89,-3,-60,-3,-14,-3,35,-2,98,-2,-91,-2,-13,-2,64,-1,-107,-1,-24,-1,61,0,-108,0,-32,0,51,1,115,1,-68,1,-17,1,32,2,70,2,94,2,114,2,112,2,110,2,86,2,62,2,17,2,-29,1,-92,1,103,1,27,1,-49,0,127,0,38,0,-43,-1,-127,-1,47,-1,-27,-2,-103,-2,93,-2,30,-2,-15,-3,-56,-3,-85,-3,-99,-3,-111,-3,-100,-3,-90,-3,-57,-3,-25,-3,28,-2,79,-2,-108,-2,-43,-2,39,-1,113,-1,-57,-1,23,0,110,0,-67,0,12,1,81,1,-107,1,-50,1,1,2,41,2,72,2,92,2,100,2,98,2,83,2,61,2,23,2,-17,1,-77,1,123,1,48,1,-20,0,-102,0,75,0,-7,-1,-91,-1,89,-1,4,-1,-60,-2,122,-2,67,-2,16,-2,-31,-3,-56,-3,-83,-3,-92,-3,-91,-3,-83,-3,-57,-3,-27,-3,16,-2,67,-2,126,-2,-64,-2,11,-1,84,-1,-87,-1,-13,-1,75,0,-106,0,-28,0,47,1,109,1,-80,1,-31,1,13,2,49,2,69,2,84,2,88,2,75,2,59,2,27,2,-13,1,-60,1,-119,1,74,1,4,1,-71,0,107,0,27,0,-58,-1,127,-1,40,-1,-23,-2,-96,-2,99,-2,49,-2,-1,-3,-34,-3,-60,-3,-76,-3,-78,-3,-76,-3,-52,-3,-33,-3,12,-2,53,-2,113,-2,-86,-2,-13,-2,56,-1,-122,-1,-42,-1,35,0,116,0,-62,0,8,1,79,1,-118,1,-61,1,-18,1,24,2,46,2,68,2,73,2,67,2,56,2,27,2,-6,1,-48,1,-105,1,95,1,25,1,-44,0,-121,0,60,0,-22,-1,-94,-1,79,-1,12,-1,-62,-2,-122,-2,78,-2,30,-2,-8,-3,-37,-3,-58,-3,-63,-3,-67,-3,-47,-3,-32,-3,6,-2,46,-2,93,-2,-98,-2,-43,-2,34,-1,104,-1,-73,-1,4,0,80,0,-99,0,-27,0,42,1,105,1,-94,1,-44,1,-5,1,26,2,46,2,59,2,58,2,48,2,29,2,-5,1,-40,1,-90,1,109,1,52,1,-24,0,-87,0,88,0,13,0,-64,-1,116,-1,44,-1,-25,-2,-89,-2,111,-2,60,-2,19,-2,-14,-3,-37,-3,-51,-3,-51,-3,-45,-3,-27,-3,2,-2,36,-2,86,-2,-119,-2,-57,-2,7,-1,78,-1,-104,-1,-30,-1,48,0,119,0,-58,0,5,1,75,1,-128,1,-74,1,-34,1,4,2,24,2,44,2,43,2,42,2,26,2,-3,1,-32,1,-82,1,-127,1,67,1,4,1,-67,0,120,0,43,0,-30,-1,-105,-1,79,-1,10,-1,-56,-2,-114,-2,90,-2,46,-2,11,-2,-18,-3,-30,-3,-42,-3,-34,-3,-23,-3,0,-2,33,-2,74,-2,124,-2,-77,-2,-15,-2,51,-1,126,-1,-60,-1,17,0,86,0,-93,0,-28,0,39,1,98,1,-108,1,-57,1,-25,1,7,2,22,2,34,2,30,2,22,2,-3,1,-28,1,-74,1,-114,1,83,1,25,1,-40,0,-110,0,74,0,1,0,-74,-1,112,-1,43,-1,-22,-2,-83,-2,123,-2,71,-2,39,-2,3,-2,-13,-3,-25,-3,-28,-3,-14,-3,-2,-3,32,-2,64,-2,113,-2,-94,-2,-32,-2,27,-1,100,-1,-91,-1,-15,-1,56,0,125,0,-56,0,3,1,69,1,119,1,-87,1,-49,1,-17,1,4,2,18,2,21,2,13,2,-2,1,-30,1,-61,1,-108,1}; }
	private static byte[] data13(){ return new byte[] {103,1,42,1,-17,0,-86,0,101,0,32,0,-42,-1,-109,-1,74,-1,12,-1,-51,-2,-106,-2,104,-2,58,-2,32,-2,2,-2,-7,-3,-16,-3,-9,-3,5,-2,28,-2,60,-2,101,-2,-107,-2,-52,-2,8,-1,70,-1,-114,-1,-44,-1,24,0,98,0,-95,0,-24,0,32,1,92,1,-120,1,-72,1,-41,1,-15,1,3,2,5,2,8,2,-9,1,-25,1,-60,1,-97,1,114,1,58,1,6,1,-64,0,-125,0,60,0,-11,-1,-79,-1,106,-1,44,-1,-20,-2,-74,-2,-127,-2,91,-2,49,-2,29,-2,3,-2,2,-2,-3,-3,11,-2,27,-2,57,-2,93,-2,-122,-2,-64,-2,-16,-2,54,-1,111,-1,-70,-1,-7,-1,66,0,-127,0,-55,0,1,1,63,1,109,1,-101,1,-64,1,-35,1,-18,1,-4,1,-6,1,-12,1,-28,1,-58,1,-86,1,122,1,78,1,21,1,-41,0,-102,0,86,0,20,0,-52,-1,-114,-1,71,-1,16,-1,-47,-2,-95,-2,113,-2,77,-2,46,-2,25,-2,14,-2,8,-2,19,-2,26,-2,59,-2,84,-2,-128,-2,-83,-2,-30,-2,28,-1,91,-1,-100,-1,-34,-1,38,0,99,0,-87,0,-29,0,29,1,84,1,126,1,-88,1,-56,1,-37,1,-19,1,-16,1,-19,1,-33,1,-53,1,-85,1,-122,1,89,1,37,1,-18,0,-81,0,114,0,46,0,-19,-1,-87,-1,103,-1,44,-1,-17,-2,-65,-2,-118,-2,105,-2,66,-2,46,-2,28,-2,21,-2,24,-2,35,-2,53,-2,84,-2,115,-2,-92,-2,-49,-2,14,-1,65,-1,-121,-1,-61,-1,5,0,74,0,-124,0,-53,0,-2,0,55,1,101,1,-114,1,-79,1,-54,1,-39,1,-25,1,-31,1,-35,1,-55,1,-82,1,-113,1,99,1,54,1,0,1,-59,0,-121,0,74,0,5,0,-55,-1,-124,-1,76,-1,13,-1,-39,-2,-87,-2,124,-2,93,-2,64,-2,44,-2,35,-2,34,-2,38,-2,58,-2,78,-2,114,-2,-108,-2,-57,-2,-10,-2,49,-1,107,-1,-85,-1,-22,-1,45,0,107,0,-88,0,-28,0,24,1,74,1,118,1,-105,1,-71,1,-57,1,-39,1,-39,1,-43,1,-58,1,-78,1,-110,1,112,1,64,1,16,1,-39,0,-97,0,98,0,35,0,-30,-1,-92,-1,100,-1,45,-1,-13,-2,-59,-2,-105,-2,115,-2,84,-2,65,-2,45,-2,48,-2,43,-2,62,-2,77,-2,108,-2,-116,-2,-70,-2,-25,-2,31,-1,86,-1,-108,-1,-48,-1,17,0,76,0,-115,0,-61,0,1,1,43,1,96,1,126,1,-92,1,-74,1,-56,1,-50,1,-50,1,-62,1,-78,1,-106,1,118,1,77,1,31,1,-19,0,-78,0,124,0,55,0,1,0,-68,-1,-124,-1,74,-1,14,-1,-29,-2,-84,-2,-113,-2,101,-2,85,-2,61,-2,59,-2,52,-2,66,-2,77,-2,106,-2,-121,-2,-83,-2,-37,-2,12,-1,66,-1,124,-1,-72,-1,-11,-1,53,0,111,0,-86,0,-31,0,19,1,67,1,105,1,-117,1,-90,1,-74,1,-59,1,-63,1,-64,1,-83,1,-100,1,122,1,88,1,42,1,-3,0,-59,0,-111,0,81,0,26,0,-40,-1,-94,-1,97,-1,46,-1,-7,-2,-54,-2,-93,-2,-128,-2,99,-2,83,-2,67,-2,66,-2,69,-2,82,-2,103,-2,-127,-2,-91,-2,-50,-2,-4,-2,49,-1,103,-1,-96,-1,-34,-1,25,0,83,0,-114,0,-59,0,-7,0,43,1,79,1,120,1,-112,1,-88,1,-76,1,-71,1,-72,1,-85,1,-101,1,127,1,95,1,55,1,11,1,-39,0,-93,0,107,0,43,0,-7,-1,-75,-1,-126,-1,71,-1,19,-1,-24,-2,-73,-2,-103,-2,117,-2,100,-2,82,-2,76,-2,76,-2,87,-2,102,-2,127,-2,-99,-2,-59,-2,-18,-2,34,-1,80,-1,-116,-1,-59,-1,-2,-1,62,0,112,0,-84,0,-33,0,14,1,59,1,93,1,126,1,-108,1,-88,1,-82,1,-83,1,-85,1,-107,1,-121,1,98,1,66,1,23,1,-24,0,-74,0,-128,0,68,0,16,0,-47,-1,-100,-1,98,-1,45,-1,-2,-2,-45,-2,-84,-2,-114,-2,114,-2,99,-2,88,-2,85,-2,92,-2,103,-2,126,-2,-104,-2,-70,-2,-29,-2,15,-1,66,-1,121,-1,-85,-1,-21,-1,29,0,92,0,-114,0,-59,0,-11,0,34,1,74,1,102,1,-121,1,-111,1,-89,1,-94,1,-92,1,-107,1,-124,1,106,1,72,1,36,1,-10,0,-56,0,-109,0,93,0,34,0,-19,-1,-78,-1,126,-1,72,-1,23,-1,-20,-2,-62,-2,-93,-2,-123,-2,115,-2,99,-2,98,-2,95,-2,109,-2,124,-2,-108,-2,-75,-2,-41,-2,3,-1,50,-1,98,-1,-101,-1,-50,-1,8,0,65,0,119,0,-85,0,-35,0,8,1,49,1,85,1,111,1,-122,1,-106,1,-104,1,-98,1,-111,1,-124,1,109,1,79,1,46,1,3,1}; }
	private static byte[] data14(){ return new byte[] {-41,0,-92,0,114,0,57,0,6,0,-54,-1,-102,-1,94,-1,50,-1,1,-1,-36,-2,-74,-2,-102,-2,-126,-2,115,-2,107,-2,105,-2,112,-2,126,-2,-112,-2,-79,-2,-53,-2,-6,-2,30,-1,85,-1,-123,-1,-69,-1,-15,-1,40,0,93,0,-111,0,-60,0,-16,0,28,1,60,1,95,1,116,1,-121,1,-113,1,-110,1,-115,1,-125,1,110,1,83,1,55,1,12,1,-23,0,-77,0,-122,0,81,0,23,0,-24,-1,-85,-1,125,-1,71,-1,29,-1,-17,-2,-48,-2,-87,-2,-105,-2,127,-2,120,-2,114,-2,116,-2,-126,-2,-113,-2,-85,-2,-57,-2,-21,-2,23,-1,63,-1,119,-1,-94,-1,-35,-1,13,0,73,0,118,0,-81,0,-42,0,5,1,40,1,74,1,97,1,120,1,-125,1,-120,1,-119,1,124,1,112,1,89,1,58,1,27,1,-16,0,-59,0,-105,0,99,0,47,0,-2,-1,-62,-1,-103,-1,92,-1,53,-1,7,-1,-30,-2,-63,-2,-90,-2,-112,-2,-123,-2,124,-2,124,-2,-123,-2,-113,-2,-87,-2,-63,-2,-29,-2,8,-1,51,-1,98,-1,-108,-1,-58,-1,-8,-1,49,0,95,0,-108,0,-63,0,-21,0,20,1,55,1,78,1,105,1,117,1,127,1,127,1,123,1,107,1,93,1,62,1,36,1,-6,0,-42,0,-92,0,122,0,66,0,18,0,-36,-1,-85,-1,120,-1,75,-1,31,-1,-9,-2,-42,-2,-72,-2,-96,-2,-109,-2,-122,-2,-124,-2,-118,-2,-110,-2,-90,-2,-68,-2,-35,-2,-4,-2,40,-1,81,-1,-127,-1,-78,-1,-28,-1,24,0,72,0,127,0,-88,0,-41,0,-1,0,29,1,65,1,85,1,103,1,118,1,115,1,120,1,104,1,94,1,66,1,43,1,5,1,-31,0,-76,0,-120,0,88,0,37,0,-11,-1,-65,-1,-110,-1,98,-1,52,-1,14,-1,-23,-2,-52,-2,-79,-2,-95,-2,-112,-2,-111,-2,-116,-2,-102,-2,-93,-2,-70,-2,-42,-2,-13,-2,29,-1,64,-1,115,-1,-100,-1,-44,-1,-1,-1,54,0,100,0,-110,0,-62,0,-29,0,17,1,39,1,74,1,86,1,104,1,109,1,110,1,103,1,92,1,68,1,49,1,12,1,-19,0,-61,0,-104,0,105,0,59,0,8,0,-42,-1,-88,-1,118,-1,77,-1,35,-1,-3,-2,-32,-2,-62,-2,-79,-2,-99,-2,-103,-2,-106,-2,-103,-2,-87,-2,-74,-2,-47,-2,-18,-2,14,-1,57,-1,95,-1,-114,-1,-66,-1,-20,-1,31,0,77,0,126,0,-88,0,-43,0,-12,0,28,1,49,1,76,1,88,1,99,1,103,1,97,1,91,1,69,1,52,1,22,1,-12,0,-45,0,-93,0,124,0,75,0,29,0,-21,-1,-65,-1,-116,-1,100,-1,55,-1,18,-1,-13,-2,-45,-2,-64,-2,-84,-2,-93,-2,-97,-2,-96,-2,-87,-2,-73,-2,-50,-2,-26,-2,7,-1,43,-1,81,-1,126,-1,-84,-1,-40,-1,13,0,54,0,105,0,-110,0,-66,0,-31,0,6,1,34,1,57,1,77,1,86,1,95,1,92,1,86,1,71,1,53,1,27,1,-1,0,-40,0,-73,0,-121,0,97,0,46,0,0,0,-46,-1,-93,-1,120,-1,76,-1,41,-1,3,-1,-23,-2,-51,-2,-67,-2,-84,-2,-86,-2,-93,-2,-80,-2,-74,-2,-51,-2,-33,-2,2,-1,29,-1,73,-1,109,-1,-101,-1,-57,-1,-11,-1,37,0,80,0,127,0,-88,0,-49,0,-14,0,15,1,43,1,58,1,80,1,80,1,88,1,80,1,71,1,54,1,33,1,3,1,-26,0,-63,0,-105,0,111,0,64,0,19,0,-23,-1,-75,-1,-112,-1,97,-1,58,-1,27,-1,-10,-2,-31,-2,-55,-2,-70,-2,-77,-2,-84,-2,-76,-2,-72,-2,-52,-2,-36,-2,-6,-2,22,-1,58,-1,98,-1,-121,-1,-70,-1,-32,-1,18,0,62,0,103,0,-106,0,-72,0,-33,0,-3,0,25,1,47,1,63,1,72,1,80,1,74,1,70,1,52,1,38,1,8,1,-17,0,-56,0,-87,0,122,0,86,0,36,0,-5,-1,-51,-1,-97,-1,120,-1,79,-1,45,-1,10,-1,-15,-2,-39,-2,-57,-2,-66,-2,-76,-2,-71,-2,-67,-2,-55,-2,-35,-2,-14,-2,14,-1,51,-1,80,-1,-127,-1,-95,-1,-45,-1,-3,-1,40,0,86,0,126,0,-90,0,-52,0,-21,0,7,1,33,1,47,1,64,1,68,1,69,1,67,1,50,1,40,1,13,1,-10,0,-43,0,-79,0,-116,0,96,0,58,0,10,0,-29,-1,-79,-1,-112,-1,96,-1,66,-1,29,-1,0,-1,-23,-2,-43,-2,-56,-2,-65,-2,-64,-2,-65,-2,-51,-2,-38,-2,-18,-2,12,-1,34,-1,78,-1,105,-1,-102,-1,-68,-1,-18,-1,21,0,67,0,104,0,-106,0,-77,0,-34,0,-14,0,18,1,34,1,52,1,58,1,65,1,56,1,56,1,34,1,22,1,-8,0,-34,0,-68,0,-104,0}; }
	private static byte[] data15(){ return new byte[] {114,0,71,0,32,0,-15,-1,-54,-1,-99,-1,121,-1,81,-1,48,-1,19,-1,-10,-2,-24,-2,-48,-2,-51,-2,-61,-2,-57,-2,-50,-2,-38,-2,-19,-2,2,-1,31,-1,64,-1,96,-1,-117,-1,-83,-1,-36,-1,2,0,48,0,86,0,-128,0,-92,0,-56,0,-29,0,3,1,17,1,42,1,45,1,58,1,51,1,52,1,34,1,23,1,-2,0,-27,0,-58,0,-92,0,127,0,87,0,46,0,5,0,-38,-1,-76,-1,-119,-1,102,-1,67,-1,34,-1,10,-1,-15,-2,-31,-2,-44,-2,-50,-2,-52,-2,-46,-2,-37,-2,-21,-2,-1,-2,25,-1,52,-1,89,-1,120,-1,-93,-1,-56,-1,-13,-1,28,0,69,0,107,0,-109,0,-76,0,-45,0,-16,0,6,1,25,1,38,1,46,1,48,1,46,1,34,1,22,1,5,1,-26,0,-43,0,-88,0,-112,0,99,0,64,0,23,0,-20,-1,-59,-1,-100,-1,120,-1,86,-1,50,-1,28,-1,-2,-2,-16,-2,-33,-2,-41,-2,-45,-2,-41,-2,-37,-2,-19,-2,-7,-2,21,-1,44,-1,77,-1,111,-1,-108,-1,-70,-1,-31,-1,11,0,48,0,92,0,126,0,-94,0,-62,0,-32,0,-8,0,10,1,29,1,32,1,44,1,39,1,33,1,22,1,5,1,-17,0,-41,0,-72,0,-105,0,116,0,77,0,38,0,-1,-1,-43,-1,-79,-1,-119,-1,103,-1,72,-1,39,-1,18,-1,-6,-2,-21,-2,-30,-2,-38,-2,-35,-2,-34,-2,-20,-2,-8,-2,17,-1,37,-1,69,-1,99,-1,-121,-1,-86,-1,-45,-1,-8,-1,35,0,71,0,109,0,-111,0,-80,0,-48,0,-26,0,-1,0,13,1,28,1,31,1,35,1,29,1,22,1,6,1,-12,0,-37,0,-63,0,-94,0,126,0,93,0,52,0,17,0,-25,-1,-61,-1,-103,-1,123,-1,86,-1,58,-1,32,-1,9,-1,-9,-2,-19,-2,-30,-2,-28,-2,-32,-2,-15,-2,-13,-2,17,-1,29,-1,62,-1,88,-1,123,-1,-98,-1,-60,-1,-23,-1,14,0,57,0,87,0,-125,0,-100,0,-62,0,-43,0,-12,0,-3,0,19,1,22,1,29,1,24,1,20,1,5,1,-8,0,-32,0,-55,0,-87,0,-114,0,101,0,72,0,26,0,-4,-1,-49,-1,-80,-1,-119,-1,106,-1,72,-1,50,-1,21,-1,7,-1,-11,-2,-19,-2,-25,-2,-21,-2,-19,-2,-6,-2,9,-1,27,-1,56,-1,78,-1,114,-1,-112,-1,-75,-1,-38,-1,-1,-1,39,0,73,0,110,0,-113,0,-84,0,-52,0,-33,0,-11,0,5,1,13,1,21,1,21,1,14,1,9,1,-10,0,-26,0,-50,0,-79,0,-104,0,114,0,84,0,43,0,9,0,-28,-1,-66,-1,-100,-1,120,-1,91,-1,62,-1,39,-1,17,-1,2,-1,-10,-2,-15,-2,-19,-2,-12,-2,-8,-2,9,-1,24,-1,49,-1,70,-1,105,-1,-125,-1,-85,-1,-55,-1,-14,-1,20,0,58,0,91,0,127,0,-99,0,-70,0,-44,0,-27,0,-5,0,2,1,15,1,11,1,16,1,1,1,-5,0,-25,0,-44,0,-71,0,-95,0,126,0,95,0,59,0,24,0,-16,-1,-44,-1,-90,-1,-114,-1,105,-1,79,-1,54,-1,29,-1,15,-1,-1,-2,-6,-2,-12,-2,-10,-2,-4,-2,8,-1,22,-1,44,-1,65,-1,95,-1,121,-1,-97,-1,-70,-1,-28,-1,3,0,43,0,75,0,111,0,-116,0,-85,0,-61,0,-36,0,-23,0,-3,0,1,1,10,1,6,1,3,1,-7,0,-25,0,-36,0,-67,0,-86,0,-121,0,107,0,71,0,40,0,0,0,-30,-1,-70,-1,-101,-1,123,-1,92,-1,69,-1,44,-1,26,-1,12,-1,0,-1,-3,-2,-6,-2,1,-1,6,-1,22,-1,39,-1,60,-1,87,-1,111,-1,-109,-1,-82,-1,-40,-1,-14,-1,30,0,55,0,99,0,119,0,-97,0,-77,0,-51,0,-31,0,-19,0,-4,0,-1,0,4,1,-3,0,-7,0,-23,0,-36,0,-58,0,-83,0,-108,0,115,0,88,0,48,0,21,0,-22,-1,-50,-1,-87,-1,-116,-1,109,-1,82,-1,59,-1,38,-1,23,-1,10,-1,4,-1,1,-1,1,-1,12,-1,18,-1,38,-1,55,-1,79,-1,105,-1,-122,-1,-90,-1,-59,-1,-23,-1,9,0,45,0,80,0,106,0,-113,0,-93,0,-64,0,-44,0,-30,0,-15,0,-7,0,-6,0,-3,0,-12,0,-20,0,-35,0,-54,0,-75,0,-102,0,127,0,96,0,64,0,31,0,-4,-1,-36,-1,-70,-1,-101,-1,122,-1,99,-1,69,-1,55,-1,31,-1,23,-1,10,-1,8,-1,7,-1,12,-1,21,-1,34,-1,53,-1,72,-1,98,-1,123,-1,-99,-1,-73,-1,-33,-1,-8,-1,33,0,61,0,94,0,124,0,-104,0,-81,0,-55,0,-42,0,-24,0,-17,0,-11,0,-9,0,-15,0,-19,0,-38,0,-45,0,-75,0,-90,0,-125,0,111,0,74,0}; }
	private static byte[] data16(){ return new byte[] {45,0,12,0,-27,-1,-49,-1,-93,-1,-111,-1,107,-1,90,-1,63,-1,45,-1,32,-1,19,-1,16,-1,12,-1,14,-1,23,-1,33,-1,50,-1,67,-1,91,-1,116,-1,-111,-1,-81,-1,-51,-1,-18,-1,15,0,49,0,77,0,114,0,-125,0,-88,0,-74,0,-51,0,-36,0,-25,0,-20,0,-11,0,-23,0,-18,0,-37,0,-45,0,-66,0,-89,0,-111,0,114,0,90,0,54,0,25,0,-9,-1,-39,-1,-72,-1,-102,-1,127,-1,99,-1,78,-1,58,-1,41,-1,30,-1,23,-1,17,-1,20,-1,23,-1,35,-1,46,-1,65,-1,83,-1,110,-1,-123,-1,-90,-1,-64,-1,-30,-1,2,0,32,0,66,0,93,0,124,0,-109,0,-83,0,-63,0,-49,0,-32,0,-28,0,-21,0,-21,0,-26,0,-32,0,-49,0,-60,0,-85,0,-103,0,125,0,97,0,68,0,37,0,6,0,-28,-1,-55,-1,-90,-1,-114,-1,114,-1,90,-1,71,-1,52,-1,41,-1,28,-1,26,-1,23,-1,27,-1,35,-1,45,-1,61,-1,79,-1,104,-1,124,-1,-99,-1,-77,-1,-39,-1,-16,-1,22,0,48,0,81,0,109,0,-121,0,-98,0,-75,0,-60,0,-43,0,-35,0,-29,0,-25,0,-30,0,-34,0,-45,0,-61,0,-77,0,-98,0,-125,0,110,0,76,0,49,0,19,0,-13,-1,-44,-1,-71,-1,-104,-1,-126,-1,102,-1,83,-1,64,-1,50,-1,38,-1,32,-1,29,-1,31,-1,35,-1,46,-1,59,-1,75,-1,98,-1,116,-1,-110,-1,-84,-1,-54,-1,-25,-1,7,0,35,0,68,0,94,0,120,0,-110,0,-89,0,-70,0,-53,0,-45,0,-34,0,-34,0,-30,0,-39,0,-43,0,-60,0,-73,0,-94,0,-116,0,117,0,87,0,62,0,29,0,1,0,-30,-1,-59,-1,-88,-1,-115,-1,117,-1,95,-1,76,-1,60,-1,47,-1,40,-1,34,-1,36,-1,36,-1,48,-1,55,-1,75,-1,90,-1,112,-1,-118,-1,-95,-1,-63,-1,-38,-1,-6,-1,22,0,53,0,81,0,108,0,-123,0,-101,0,-82,0,-65,0,-53,0,-43,0,-37,0,-38,0,-39,0,-46,0,-59,0,-68,0,-92,0,-107,0,123,0,97,0,72,0,40,0,14,0,-18,-1,-45,-1,-74,-1,-101,-1,-126,-1,107,-1,87,-1,70,-1,58,-1,46,-1,43,-1,38,-1,42,-1,47,-1,57,-1,69,-1,89,-1,104,-1,-123,-1,-107,-1,-72,-1,-50,-1,-17,-1,11,0,38,0,69,0,92,0,122,0,-115,0,-93,0,-76,0,-63,0,-49,0,-47,0,-40,0,-44,0,-48,0,-57,0,-68,0,-87,0,-103,0,-126,0,106,0,82,0,51,0,26,0,-5,-1,-32,-1,-62,-1,-87,-1,-114,-1,120,-1,99,-1,83,-1,64,-1,59,-1,45,-1,46,-1,47,-1,45,-1,61,-1,66,-1,83,-1,104,-1,119,-1,-106,-1,-89,-1,-54,-1,-34,-1,1,0,25,0,54,0,82,0,107,0,-127,0,-103,0,-88,0,-72,0,-59,0,-54,0,-46,0,-47,0,-52,0,-55,0,-70,0,-81,0,-99,0,-121,0,116,0,88,0,63,0,37,0,5,0,-17,-1,-52,-1,-71,-1,-103,-1,-122,-1,111,-1,91,-1,78,-1,63,-1,56,-1,52,-1,48,-1,52,-1,58,-1,68,-1,80,-1,99,-1,115,-1,-117,-1,-92,-1,-71,-1,-40,-1,-13,-1,14,0,42,0,69,0,93,0,118,0,-116,0,-100,0,-80,0,-69,0,-61,0,-51,0,-55,0,-49,0,-63,0,-63,0,-84,0,-93,0,-114,0,119,0,100,0,71,0,47,0,19,0,-8,-1,-36,-1,-61,-1,-91,-1,-108,-1,119,-1,108,-1,82,-1,78,-1,60,-1,60,-1,52,-1,56,-1,59,-1,68,-1,79,-1,93,-1,113,-1,-126,-1,-99,-1,-79,-1,-50,-1,-25,-1,3,0,28,0,57,0,82,0,105,0,-127,0,-111,0,-91,0,-78,0,-68,0,-60,0,-57,0,-57,0,-60,0,-69,0,-77,0,-94,0,-107,0,125,0,106,0,82,0,54,0,33,0,0,0,-23,-1,-49,-1,-77,-1,-97,-1,-123,-1,115,-1,96,-1,84,-1,71,-1,65,-1,58,-1,60,-1,61,-1,68,-1,79,-1,91,-1,107,-1,-128,-1,-113,-1,-81,-1,-65,-1,-32,-1,-10,-1,17,0,46,0,67,0,96,0,114,0,-120,0,-102,0,-88,0,-76,0,-66,0,-64,0,-59,0,-65,0,-67,0,-79,0,-88,0,-107,0,-124,0,114,0,87,0,68,0,38,0,15,0,-11,-1,-40,-1,-61,-1,-90,-1,-108,-1,123,-1,111,-1,90,-1,82,-1,70,-1,66,-1,62,-1,66,-1,68,-1,79,-1,89,-1,102,-1,123,-1,-117,-1,-91,-1,-70,-1,-47,-1,-17,-1,4,0,34,0,58,0,79,0,107,0,121,0,-109,0,-100,0,-82,0,-77,0,-67,0,-67,0,-65,0,-71,0,-78,0,-88,0,-102,0,-120,0,120,0,95,0,76,0,48,0,26,0}; }
	private static byte[] data17(){ return new byte[] {-3,-1,-25,-1,-53,-1,-75,-1,-98,-1,-119,-1,117,-1,103,-1,88,-1,80,-1,70,-1,69,-1,68,-1,71,-1,79,-1,87,-1,101,-1,117,-1,-121,-1,-99,-1,-80,-1,-53,-1,-31,-1,-4,-1,22,0,46,0,70,0,92,0,114,0,-125,0,-105,0,-95,0,-81,0,-76,0,-71,0,-69,0,-73,0,-79,0,-86,0,-102,0,-111,0,118,0,109,0,77,0,62,0,33,0,10,0,-15,-1,-41,-1,-63,-1,-88,-1,-108,-1,-126,-1,110,-1,99,-1,87,-1,77,-1,75,-1,72,-1,73,-1,80,-1,86,-1,100,-1,113,-1,-127,-1,-105,-1,-88,-1,-60,-1,-41,-1,-13,-1,8,0,37,0,57,0,81,0,104,0,120,0,-116,0,-100,0,-95,0,-77,0,-82,0,-69,0,-79,0,-76,0,-92,0,-94,0,-114,0,-126,0,108,0,91,0,65,0,46,0,17,0,-4,-1,-29,-1,-54,-1,-74,-1,-99,-1,-115,-1,121,-1,108,-1,93,-1,87,-1,79,-1,76,-1,78,-1,78,-1,90,-1,96,-1,111,-1,125,-1,-112,-1,-93,-1,-70,-1,-50,-1,-22,-1,-3,-1,27,0,45,0,72,0,91,0,112,0,-128,0,-111,0,-99,0,-90,0,-80,0,-81,0,-78,0,-82,0,-88,0,-95,0,-111,0,-122,0,112,0,99,0,71,0,55,0,28,0,6,0,-18,-1,-43,-1,-65,-1,-85,-1,-108,-1,-123,-1,116,-1,102,-1,96,-1,82,-1,84,-1,79,-1,83,-1,89,-1,96,-1,108,-1,122,-1,-118,-1,-99,-1,-78,-1,-56,-1,-33,-1,-12,-1,15,0,35,0,61,0,80,0,101,0,120,0,-122,0,-105,0,-100,0,-86,0,-86,0,-80,0,-87,0,-86,0,-99,0,-105,0,-121,0,119,0,103,0,80,0,63,0,36,0,17,0,-11,-1,-29,-1,-57,-1,-73,-1,-97,-1,-114,-1,126,-1,112,-1,99,-1,94,-1,85,-1,86,-1,84,-1,91,-1,94,-1,110,-1,115,-1,-118,-1,-107,-1,-84,-1,-64,-1,-44,-1,-18,-1,2,0,26,0,51,0,67,0,95,0,104,0,-125,0,-120,0,-103,0,-96,0,-89,0,-88,0,-85,0,-92,0,-96,0,-104,0,-122,0,-127,0,103,0,90,0,68,0,45,0,27,0,-2,-1,-18,-1,-46,-1,-63,-1,-87,-1,-104,-1,-122,-1,122,-1,108,-1,99,-1,92,-1,90,-1,87,-1,94,-1,94,-1,108,-1,114,-1,-123,-1,-111,-1,-92,-1,-70,-1,-52,-1,-27,-1,-6,-1,15,0,39,0,61,0,79,0,100,0,116,0,-125,0,-111,0,-103,0,-96,0,-91,0,-90,0,-93,0,-97,0,-106,0,-115,0,-128,0,110,0,96,0,73,0,56,0,34,0,7,0,-6,-1,-39,-1,-51,-1,-77,-1,-95,-1,-109,-1,126,-1,120,-1,103,-1,102,-1,90,-1,96,-1,90,-1,101,-1,102,-1,118,-1,125,-1,-111,-1,-99,-1,-78,-1,-57,-1,-39,-1,-13,-1,5,0,29,0,51,0,68,0,91,0,107,0,121,0,-119,0,-111,0,-102,0,-95,0,-97,0,-92,0,-101,0,-103,0,-116,0,-125,0,116,0,98,0,83,0,59,0,44,0,17,0,1,0,-26,-1,-44,-1,-65,-1,-86,-1,-101,-1,-118,-1,125,-1,113,-1,105,-1,99,-1,97,-1,96,-1,100,-1,105,-1,114,-1,125,-1,-118,-1,-102,-1,-84,-1,-64,-1,-47,-1,-21,-1,-5,-1,20,0,40,0,60,0,80,0,97,0,112,0,-126,0,-120,0,-106,0,-104,0,-98,0,-97,0,-103,0,-102,0,-117,0,-121,0,116,0,106,0,87,0,68,0,49,0,28,0,7,0,-14,-1,-35,-1,-57,-1,-74,-1,-93,-1,-108,-1,-124,-1,122,-1,110,-1,108,-1,98,-1,102,-1,99,-1,108,-1,112,-1,125,-1,-123,-1,-104,-1,-91,-1,-70,-1,-55,-1,-29,-1,-14,-1,11,0,30,0,51,0,71,0,87,0,106,0,116,0,-121,0,-120,0,-102,0,-110,0,-95,0,-109,0,-101,0,-117,0,-120,0,121,0,108,0,92,0,75,0,55,0,38,0,13,0,-3,-1,-28,-1,-44,-1,-67,-1,-81,-1,-103,-1,-112,-1,127,-1,119,-1,112,-1,104,-1,105,-1,103,-1,108,-1,113,-1,122,-1,-123,-1,-111,-1,-94,-1,-77,-1,-61,-1,-38,-1,-21,-1,1,0,22,0,42,0,59,0,79,0,96,0,109,0,125,0,-123,0,-113,0,-109,0,-106,0,-105,0,-108,0,-113,0,-122,0,125,0,110,0,99,0,77,0,66,0,41,0,26,0,1,0,-15,-1,-39,-1,-54,-1,-76,-1,-89,-1,-108,-1,-117,-1,123,-1,119,-1,111,-1,106,-1,109,-1,108,-1,113,-1,123,-1,-128,-1,-111,-1,-100,-1,-82,-1,-66,-1,-47,-1,-27,-1,-9,-1,14,0,31,0,51,0,72,0,84,0,104,0,115,0,126,0,-119,0,-116,0,-108,0,-110,0,-108,0,-116,0,-121,0,127,0,113,0,103,0,83,0,71,0,48,0,33,0,10,0,-7,-1}; }
	private static byte[] data18(){ return new byte[] {-28,-1,-47,-1,-65,-1,-82,-1,-98,-1,-111,-1,-123,-1,122,-1,119,-1,110,-1,112,-1,111,-1,113,-1,123,-1,-128,-1,-114,-1,-104,-1,-87,-1,-73,-1,-52,-1,-36,-1,-15,-1,4,0,24,0,41,0,63,0,74,0,97,0,105,0,120,0,-127,0,-119,0,-115,0,-112,0,-112,0,-117,0,-119,0,126,0,117,0,105,0,89,0,74,0,58,0,37,0,21,0,0,0,-21,-1,-36,-1,-59,-1,-71,-1,-91,-1,-102,-1,-117,-1,-125,-1,122,-1,117,-1,114,-1,115,-1,114,-1,124,-1,126,-1,-117,-1,-105,-1,-94,-1,-73,-1,-64,-1,-38,-1,-28,-1,0,0,12,0,35,0,52,0,68,0,86,0,99,0,112,0,124,0,-128,0,-117,0,-118,0,-114,0,-117,0,-124,0,-125,0,116,0,109,0,94,0,78,0,64,0,45,0,25,0,10,0,-12,-1,-28,-1,-48,-1,-66,-1,-78,-1,-100,-1,-103,-1,-123,-1,-127,-1,125,-1,113,-1,122,-1,116,-1,122,-1,-127,-1,-120,-1,-109,-1,-94,-1,-83,-1,-65,-1,-49,-1,-30,-1,-12,-1,8,0,23,0,45,0,60,0,76,0,94,0,100,0,120,0,122,0,-124,0,-121,0,-118,0,-120,0,-121,0,126,0,121,0,108,0,99,0,83,0,68,0,53,0,31,0,19,0,-4,-1,-21,-1,-39,-1,-57,-1,-72,-1,-87,-1,-101,-1,-112,-1,-122,-1,-127,-1,121,-1,122,-1,120,-1,123,-1,-127,-1,-121,-1,-111,-1,-98,-1,-88,-1,-67,-1,-58,-1,-34,-1,-23,-1,2,0,15,0,36,0,52,0,67,0,87,0,93,0,112,0,115,0,-128,0,-126,0,-122,0,-123,0,-123,0,127,0,121,0,111,0,101,0,88,0,72,0,59,0,39,0,23,0,7,0,-17,-1,-26,-1,-53,-1,-61,-1,-79,-1,-96,-1,-101,-1,-120,-1,-119,-1,126,-1,125,-1,123,-1,124,-1,-126,-1,-122,-1,-111,-1,-102,-1,-90,-1,-75,-1,-61,-1,-43,-1,-27,-1,-8,-1,10,0,25,0,46,0,59,0,75,0,92,0,97,0,116,0,117,0,-128,0,-128,0,-123,0,-128,0,-127,0,119,0,114,0,103,0,91,0,78,0,61,0,49,0,28,0,14,0,-6,-1,-24,-1,-38,-1,-58,-1,-71,-1,-85,-1,-99,-1,-107,-1,-119,-1,-122,-1,-128,-1,127,-1,125,-1,-124,-1,-123,-1,-111,-1,-106,-1,-92,-1,-80,-1,-65,-1,-48,-1,-35,-1,-14,-1,0,0,21,0,34,0,54,0,67,0,82,0,95,0,104,0,115,0,121,0,126,0,126,0,-126,0,123,0,122,0,115,0,102,0,97,0,80,0,67,0,54,0,34,0,20,0,2,0,-17,-1,-30,-1,-50,-1,-62,-1,-79,-1,-90,-1,-104,-1,-108,-1,-122,-1,-119,-1,126,-1,-123,-1,-127,-1,-120,-1,-113,-1,-108,-1,-92,-1,-87,-1,-66,-1,-58,-1,-38,-1,-22,-1,-7,-1,13,0,28,0,43,0,63,0,72,0,88,0,98,0,107,0,119,0,118,0,127,0,122,0,127,0,117,0,118,0,102,0,101,0,82,0,73,0,57,0,42,0,26,0,9,0,-8,-1,-24,-1,-42,-1,-54,-1,-73,-1,-81,-1,-97,-1,-105,-1,-111,-1,-121,-1,-120,-1,-126,-1,-120,-1,-122,-1,-113,-1,-108,-1,-98,-1,-86,-1,-74,-1,-59,-1,-46,-1,-28,-1,-13,-1,5,0,20,0,37,0,52,0,66,0,83,0,88,0,105,0,108,0,117,0,121,0,120,0,124,0,117,0,116,0,106,0,100,0,88,0,74,0,65,0,44,0,36,0,13,0,1,0,-20,-1,-30,-1,-50,-1,-63,-1,-75,-1,-91,-1,-97,-1,-107,-1,-116,-1,-115,-1,-123,-1,-120,-1,-117,-1,-117,-1,-105,-1,-101,-1,-89,-1,-76,-1,-68,-1,-46,-1,-39,-1,-15,-1,-7,-1,18,0,25,0,50,0,54,0,78,0,81,0,98,0,103,0,112,0,116,0,120,0,117,0,120,0,112,0,110,0,99,0,92,0,77,0,69,0,50,0,39,0,23,0,4,0,-7,-1,-29,-1,-38,-1,-59,-1,-66,-1,-85,-1,-90,-1,-102,-1,-110,-1,-112,-1,-119,-1,-116,-1,-118,-1,-114,-1,-106,-1,-104,-1,-89,-1,-82,-1,-69,-1,-54,-1,-40,-1,-26,-1,-9,-1,7,0,20,0,42,0,46,0,72,0,72,0,96,0,93,0,110,0,109,0,117,0,116,0,116,0,113,0,108,0,102,0,92,0,83,0,69,0,59,0,41,0,30,0,11,0,-3,-1,-18,-1,-35,-1,-48,-1,-62,-1,-76,-1,-84,-1,-98,-1,-101,-1,-112,-1,-111,-1,-116,-1,-116,-1,-110,-1,-112,-1,-98,-1,-96,-1,-82,-1,-73,-1,-59,-1,-46,-1,-30,-1,-18,-1,3,0,13,0,32,0,45,0,57,0,73,0,83,0,92,0,102,0,105,0,112,0,114,0,114,0,112,0,107,0,103,0,94,0,85,0,73,0,62,0,48,0,33,0,20,0,1,0,-8,-1,-30,-1}; }
	private static byte[] data19(){ return new byte[] {-40,-1,-57,-1,-66,-1,-82,-1,-86,-1,-103,-1,-100,-1,-113,-1,-109,-1,-114,-1,-111,-1,-107,-1,-103,-1,-95,-1,-85,-1,-77,-1,-62,-1,-51,-1,-36,-1,-21,-1,-8,-1,10,0,23,0,38,0,52,0,64,0,78,0,86,0,96,0,101,0,108,0,111,0,110,0,113,0,104,0,105,0,93,0,89,0,75,0,68,0,49,0,41,0,23,0,10,0,-5,-1,-20,-1,-37,-1,-45,-1,-65,-1,-69,-1,-87,-1,-91,-1,-100,-1,-106,-1,-106,-1,-113,-1,-107,-1,-109,-1,-101,-1,-96,-1,-89,-1,-76,-1,-69,-1,-53,-1,-42,-1,-27,-1,-13,-1,2,0,18,0,30,0,46,0,58,0,70,0,82,0,87,0,100,0,100,0,109,0,108,0,108,0,107,0,103,0,94,0,91,0,78,0,69,0,57,0,43,0,30,0,16,0,1,0,-15,-1,-27,-1,-41,-1,-57,-1,-64,-1,-81,-1,-85,-1,-95,-1,-101,-1,-104,-1,-108,-1,-107,-1,-107,-1,-100,-1,-98,-1,-88,-1,-82,-1,-69,-1,-60,-1,-45,-1,-33,-1,-17,-1,-4,-1,9,0,26,0,36,0,55,0,62,0,74,0,86,0,89,0,102,0,101,0,106,0,106,0,106,0,100,0,99,0,87,0,84,0,70,0,62,0,47,0,35,0,22,0,5,0,-5,-1,-23,-1,-35,-1,-48,-1,-62,-1,-69,-1,-83,-1,-88,-1,-98,-1,-101,-1,-103,-1,-105,-1,-105,-1,-100,-1,-99,-1,-89,-1,-83,-1,-74,-1,-59,-1,-55,-1,-32,-1,-28,-1,-8,-1,4,0,18,0,33,0,44,0,58,0,68,0,79,0,86,0,96,0,95,0,107,0,99,0,107,0,100,0,96,0,92,0,82,0,76,0,63,0,53,0,37,0,29,0,10,0,2,0,-18,-1,-26,-1,-45,-1,-52,-1,-67,-1,-75,-1,-84,-1,-92,-1,-96,-1,-101,-1,-103,-1,-102,-1,-100,-1,-97,-1,-90,-1,-87,-1,-72,-1,-68,-1,-53,-1,-41,-1,-30,-1,-15,-1,-1,-1,11,0,27,0,38,0,51,0,62,0,73,0,81,0,91,0,92,0,102,0,97,0,105,0,97,0,99,0,89,0,86,0,77,0,65,0,57,0,44,0,30,0,21,0,1,0,-7,-1,-24,-1,-34,-1,-50,-1,-57,-1,-74,-1,-74,-1,-90,-1,-90,-1,-100,-1,-97,-1,-103,-1,-95,-1,-101,-1,-88,-1,-88,-1,-76,-1,-68,-1,-58,-1,-46,-1,-33,-1,-22,-1,-6,-1,5,0,20,0,34,0,43,0,59,0,65,0,77,0,84,0,91,0,94,0,99,0,99,0,98,0,97,0,89,0,89,0,74,0,75,0,54,0,51,0,34,0,24,0,9,0,-3,-1,-16,-1,-30,-1,-42,-1,-53,-1,-65,-1,-73,-1,-82,-1,-89,-1,-92,-1,-97,-1,-96,-1,-101,-1,-93,-1,-93,-1,-85,-1,-79,-1,-71,-1,-61,-1,-49,-1,-40,-1,-22,-1,-16,-1,3,0,13,0,25,0,41,0,49,0,62,0,71,0,78,0,87,0,90,0,96,0,96,0,97,0,94,0,93,0,85,0,80,0,72,0,61,0,52,0,42,0,24,0,20,0,-3,-1,-7,-1,-25,-1,-36,-1,-47,-1,-60,-1,-66,-1,-78,-1,-83,-1,-90,-1,-91,-1,-98,-1,-93,-1,-97,-1,-90,-1,-86,-1,-82,-1,-71,-1,-64,-1,-54,-1,-40,-1,-32,-1,-18,-1,-3,-1,6,0,22,0,33,0,42,0,60,0,61,0,79,0,76,0,90,0,90,0,94,0,96,0,91,0,93,0,85,0,82,0,73,0,65,0,55,0,43,0,34,0,18,0,9,0,-5,-1,-19,-1,-28,-1,-44,-1,-50,-1,-66,-1,-68,-1,-82,-1,-83,-1,-90,-1,-92,-1,-95,-1,-91,-1,-92,-1,-86,-1,-81,-1,-76,-1,-63,-1,-59,-1,-44,-1,-36,-1,-22,-1,-9,-1,2,0,15,0,27,0,39,0,50,0,61,0,67,0,78,0,82,0,88,0,92,0,90,0,95,0,87,0,90,0,78,0,78,0,65,0,59,0,46,0,39,0,22,0,15,0,-2,-1,-10,-1,-26,-1,-36,-1,-46,-1,-59,-1,-65,-1,-74,-1,-83,-1,-82,-1,-93,-1,-88,-1,-93,-1,-90,-1,-85,-1,-83,-1,-75,-1,-67,-1,-61,-1,-47,-1,-40,-1,-26,-1,-15,-1,-4,-1,12,0,19,0,34,0,46,0,51,0,69,0,67,0,81,0,84,0,86,0,91,0,90,0,89,0,86,0,83,0,74,0,70,0,61,0,49,0,43,0,26,0,19,0,5,0,-8,-1,-17,-1,-33,-1,-39,-1,-53,-1,-61,-1,-69,-1,-79,-1,-78,-1,-90,-1,-84,-1,-92,-1,-88,-1,-84,-1,-86,-1,-71,-1,-75,-1,-57,-1,-56,-1,-40,-1,-32,-1,-20,-1,-5,-1,0,0,20,0,25,0,40,0,50,0,57,0,67,0,76,0,77,0,88,0,82,0,93,0,84,0,88,0,81,0,76,0,72,0,61,0,55,0,42,0,35,0,20,0,12,0,-4,-1,-11,-1,-27,-1,-35,-1}; }
	private static byte[] data20(){ return new byte[] {-48,-1,-55,-1,-66,-1,-70,-1,-79,-1,-82,-1,-86,-1,-86,-1,-88,-1,-85,-1,-80,-1,-81,-1,-67,-1,-66,-1,-54,-1,-45,-1,-36,-1,-23,-1,-13,-1,0,0,10,0,24,0,31,0,47,0,50,0,66,0,67,0,77,0,80,0,84,0,86,0,85,0,87,0,79,0,79,0,71,0,64,0,57,0,47,0,36,0,26,0,16,0,1,0,-7,-1,-20,-1,-32,-1,-39,-1,-53,-1,-58,-1,-69,-1,-72,-1,-81,-1,-81,-1,-86,-1,-84,-1,-84,-1,-82,-1,-78,-1,-71,-1,-66,-1,-58,-1,-46,-1,-42,-1,-24,-1,-20,-1,-4,-1,6,0,17,0,28,0,39,0,48,0,59,0,63,0,72,0,78,0,80,0,84,0,83,0,85,0,79,0,81,0,69,0,68,0,58,0,49,0,42,0,28,0,20,0,8,0,-4,-1,-14,-1,-25,-1,-39,-1,-42,-1,-59,-1,-59,-1,-72,-1,-75,-1,-79,-1,-82,-1,-83,-1,-82,-1,-82,-1,-78,-1,-72,-1,-67,-1,-60,-1,-50,-1,-42,-1,-32,-1,-21,-1,-10,-1,1,0,12,0,23,0,34,0,43,0,53,0,60,0,67,0,75,0,75,0,83,0,81,0,81,0,83,0,74,0,76,0,66,0,61,0,53,0,41,0,36,0,22,0,12,0,2,0,-11,-1,-19,-1,-31,-1,-42,-1,-50,-1,-57,-1,-67,-1,-70,-1,-76,-1,-80,-1,-80,-1,-81,-1,-81,-1,-76,-1,-75,-1,-66,-1,-63,-1,-51,-1,-47,-1,-34,-1,-27,-1,-12,-1,-6,-1,11,0,13,0,34,0,34,0,51,0,54,0,63,0,70,0,75,0,76,0,81,0,79,0,80,0,78,0,73,0,67,0,64,0,51,0,51,0,33,0,29,0,15,0,7,0,-7,-1,-12,-1,-31,-1,-31,-1,-49,-1,-52,-1,-61,-1,-69,-1,-70,-1,-78,-1,-77,-1,-80,-1,-79,-1,-77,-1,-73,-1,-69,-1,-62,-1,-56,-1,-48,-1,-38,-1,-28,-1,-19,-1,-8,-1,3,0,12,0,26,0,31,0,45,0,50,0,59,0,67,0,68,0,78,0,74,0,80,0,77,0,77,0,73,0,70,0,61,0,60,0,43,0,46,0,26,0,23,0,9,0,-1,-1,-9,-1,-24,-1,-28,-1,-44,-1,-46,-1,-58,-1,-64,-1,-67,-1,-75,-1,-74,-1,-79,-1,-77,-1,-75,-1,-74,-1,-70,-1,-62,-1,-59,-1,-48,-1,-43,-1,-31,-1,-23,-1,-12,-1,-2,-1,10,0,16,0,33,0,34,0,49,0,55,0,59,0,70,0,69,0,75,0,78,0,73,0,81,0,67,0,74,0,62,0,59,0,51,0,42,0,34,0,24,0,15,0,3,0,-6,-1,-16,-1,-27,-1,-35,-1,-45,-1,-53,-1,-58,-1,-67,-1,-67,-1,-75,-1,-75,-1,-75,-1,-76,-1,-72,-1,-70,-1,-64,-1,-60,-1,-51,-1,-45,-1,-34,-1,-27,-1,-14,-1,-8,-1,4,0,16,0,22,0,35,0,42,0,50,0,56,0,66,0,65,0,74,0,74,0,73,0,76,0,72,0,69,0,66,0,58,0,54,0,45,0,37,0,27,0,18,0,8,0,-1,-1,-14,-1,-19,-1,-34,-1,-38,-1,-48,-1,-57,-1,-59,-1,-68,-1,-69,-1,-74,-1,-73,-1,-74,-1,-72,-1,-69,-1,-67,-1,-58,-1,-55,-1,-45,-1,-38,-1,-31,-1,-18,-1,-11,-1,1,0,8,0,22,0,26,0,41,0,44,0,53,0,60,0,64,0,70,0,69,0,76,0,70,0,75,0,66,0,68,0,58,0,57,0,46,0,39,0,32,0,20,0,14,0,0,0,-5,-1,-19,-1,-26,-1,-36,-1,-43,-1,-51,-1,-59,-1,-60,-1,-72,-1,-65,-1,-75,-1,-72,-1,-69,-1,-73,-1,-62,-1,-64,-1,-53,-1,-50,-1,-39,-1,-34,-1,-22,-1,-15,-1,-4,-1,7,0,13,0,26,0,32,0,42,0,50,0,55,0,61,0,66,0,69,0,70,0,73,0,69,0,70,0,66,0,60,0,57,0,48,0,43,0,33,0,27,0,12,0,10,0,-8,-1,-8,-1,-26,-1,-29,-1,-41,-1,-46,-1,-54,-1,-59,-1,-65,-1,-67,-1,-69,-1,-72,-1,-68,-1,-71,-1,-65,-1,-60,-1,-60,-1,-46,-1,-47,-1,-31,-1,-30,-1,-15,-1,-10,-1,1,0,13,0,18,0,30,0,38,0,43,0,53,0,58,0,60,0,70,0,64,0,74,0,66,0,70,0,65,0,62,0,58,0,49,0,45,0,36,0,28,0,20,0,8,0,3,0,-12,-1,-14,-1,-30,-1,-33,-1,-45,-1,-49,-1,-56,-1,-60,-1,-65,-1,-68,-1,-68,-1,-69,-1,-68,-1,-65,-1,-62,-1,-58,-1,-51,-1,-46,-1,-37,-1,-29,-1,-22,-1,-10,-1,-4,-1,7,0,17,0,22,0,36,0,39,0,49,0,54,0,58,0,64,0,66,0,67,0,70,0,65,0,67,0,61,0,58,0,53,0,45,0,39,0,31,0,22,0,15,0,2,0,-2,-1,-17,-1,-19,-1,-34,-1,-38,-1}; }
	private static byte[] data21(){ return new byte[] {-44,-1,-55,-1,-55,-1,-63,-1,-65,-1,-66,-1,-67,-1,-68,-1,-64,-1,-63,-1,-58,-1,-52,-1,-48,-1,-39,-1,-33,-1,-23,-1,-16,-1,-6,-1,2,0,12,0,22,0,27,0,38,0,44,0,49,0,59,0,57,0,64,0,67,0,65,0,68,0,63,0,63,0,57,0,56,0,45,0,42,0,34,0,24,0,17,0,10,0,-4,-1,-5,-1,-24,-1,-22,-1,-39,-1,-39,-1,-49,-1,-55,-1,-58,-1,-63,-1,-64,-1,-65,-1,-66,-1,-65,-1,-61,-1,-60,-1,-52,-1,-50,-1,-42,-1,-32,-1,-30,-1,-16,-1,-12,-1,0,0,8,0,16,0,26,0,31,0,42,0,44,0,55,0,55,0,64,0,59,0,69,0,61,0,68,0,59,0,61,0,52,0,51,0,41,0,38,0,27,0,20,0,13,0,1,0,-5,-1,-13,-1,-27,-1,-26,-1,-42,-1,-43,-1,-50,-1,-58,-1,-57,-1,-63,-1,-65,-1,-62,-1,-67,-1,-59,-1,-59,-1,-57,-1,-46,-1,-48,-1,-33,-1,-32,-1,-21,-1,-13,-1,-5,-1,4,0,13,0,20,0,29,0,37,0,43,0,48,0,55,0,56,0,63,0,62,0,64,0,62,0,63,0,57,0,57,0,49,0,45,0,38,0,30,0,24,0,15,0,5,0,0,0,-13,-1,-17,-1,-27,-1,-35,-1,-41,-1,-47,-1,-53,-1,-56,-1,-59,-1,-63,-1,-63,-1,-61,-1,-64,-1,-55,-1,-59,-1,-48,-1,-47,-1,-38,-1,-32,-1,-25,-1,-16,-1,-8,-1,0,0,10,0,15,0,27,0,31,0,40,0,46,0,49,0,57,0,57,0,61,0,64,0,59,0,63,0,58,0,55,0,52,0,45,0,41,0,31,0,29,0,14,0,13,0,0,0,-7,-1,-15,-1,-23,-1,-31,-1,-37,-1,-44,-1,-49,-1,-53,-1,-58,-1,-58,-1,-64,-1,-58,-1,-63,-1,-57,-1,-56,-1,-52,-1,-45,-1,-42,-1,-34,-1,-27,-1,-19,-1,-12,-1,-2,-1,4,0,13,0,23,0,25,0,41,0,37,0,51,0,50,0,56,0,60,0,58,0,63,0,58,0,61,0,53,0,53,0,47,0,42,0,35,0,28,0,21,0,13,0,5,0,-5,-1,-10,-1,-20,-1,-26,-1,-34,-1,-40,-1,-47,-1,-49,-1,-57,-1,-55,-1,-60,-1,-60,-1,-59,-1,-60,-1,-53,-1,-55,-1,-44,-1,-47,-1,-31,-1,-34,-1,-18,-1,-19,-1,-2,-1,-1,-1,10,0,13,0,19,0,22,0,27,0,24,0,29,0,26,0,26,0,23,0,22,0,15,0,18,0,8,0,10,0,5,0,1,0}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-18.wav. */
	public Drum18(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-18.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-18.wav. */
	private class LoopThread extends Thread {
		private Drum18 clip;
		private boolean looping = true;
		public LoopThread(Drum18 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-18.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-18.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-18.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-18.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-18.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}